簡體   English   中英

如何擴展Windows資源管理器的行為單擊或擴展外殼行為

[英]How Can I extend the Behaviour of Windows Explorer Click or Extending the Shell Behaviour

有什么方法可以擴展或修改Windows資源管理器單擊的行為?

例如,我要修改click事件。 單擊驅動器后,我應該能夠連接到FTP服務器,而不必打開驅動器。 該驅動器將是已安裝的驅動器。

因此,我想做的是修改Windows資源管理器的默認行為。單擊“單擊或擴展外殼程序的行為”(我不確定這是否屬於外殼程序擴展名)。

嗯,這遠遠超出了“點擊”范圍。 您必須編寫一個shell擴展。 由於CLR版本注入問題,在.NET 4.0之前,用C#進行此操作是完全不可行的。 當非托管程序(例如,記事本)使用諸如ShellBrowser或OpenFileDialog之類的shell對話框時,將在其中注入CLR。 這可能會導致后續代碼失敗,從而需要其他版本的CLR。 解決了這一問題,CLR 4.0支持多個CLR版本的內存並行操作。

無法解決的是您需要編寫的代碼的復雜性。 Shell擴展名需要COM代碼。 從IUnknown派生的硬類型接口。 為了開始使用,您需要為COM接口編寫大量的聲明。 您不能將它們從SDK聲明中刪除,它們只能由C ++程序使用。 而且它很容易出錯,C#不支持多重繼承,這是您需要聲明從其他接口派生的COM接口的功能。

最后但並非最不重要的一點是,調試此類代碼是一場噩夢。 這是您要修補的Windows必不可少的過程。 犯錯誤將使您無法使用外殼。 重新啟動會啟動相同的中斷外殼。

好吧,需要黑帶技能。 我以為.NET 4.0的可用性應該已經啟動了一些提供友好的托管包裝程序的項目。 我還沒看過。 也以它為標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM