![]() |
1
1
嗯,这是有点超出“点击”。你得写一个shell扩展。在.NET4.0之前,由于CLR版本注入问题,在C中这样做是非常禁止的。非托管程序(比如,记事本)在使用shell对话框(如FolderBrowser或OpenFileDialog)时会将CLR注入其中。这可能导致后续代码失败,需要另一个版本的CLR。解决了这个问题,clr4.0支持多个CLR版本的内存并行操作。 没有解决的是您需要编写的代码的复杂性。Shell扩展需要COM代码。硬的类型,从IUnknown派生的接口。甚至要开始,您还需要为COM接口编写大量声明。不能将它们从SDK声明中取出,它们只能由C++程序使用。而且它非常容易出错,C#不支持多重继承,您需要声明从其他接口派生的COM接口。
|