有什么方法可以扩展或修改Windows资源管理器的行为点击?
例如,我想修改click事件。单击一个驱动器,我应该能够连接到FTP服务器而不是打开驱动器。该驱动器将是一个安装驱动器。
所以我要做的是修改Windows资源管理器的默认行为单击或扩展Shell的行为(我不确定这是否属于shell扩展)。
答案 0 :(得分:1)
Hmya,这远远超出了“点击”。你必须写一个shell扩展。由于CLR版本注入问题,在.NET 4.0中执行此操作是非常不受限制的。非托管程序(比如记事本)在使用shell对话框(如FolderBrowser或OpenFileDialog)时会将CLR注入其中。这可能导致后续代码失败,需要另一个版本的CLR。这已经解决了,CLR 4.0支持多个CLR版本的内存并行操作。
未解决的是您需要编写的代码的复杂性。 Shell扩展需要COM代码。来自IUnknown的硬件接口。要开始,您需要为COM接口编写大量声明。您无法从SDK声明中获取它们,它们只能由C ++程序使用。并且它非常容易出错,C#不支持多重继承,这是您需要声明从其他接口派生的COM接口的功能。
最后但并非最不重要的是,调试这种代码是一场噩梦。这是您正在修补的基本Windows过程。犯了一个错误会让你无法使用shell。重新启动启动相同的borked shell。
嗯,需要黑带技能。我想象.NET 4.0的可用性应该已经启动了一些提供友好的托管包装器的项目。我还没有见过任何人。把它作为一个标志。