2012-02-01 55 views
1

有沒有什麼辦法可以從Visual Studio擴展/包內動態添加全局熱鍵?Visual Studio擴展動態熱鍵

在我的包的* .vsct文件中聲明熱鍵是沒有選擇的,因爲我不知道哪些熱鍵應該在運行時可用 - 在我的擴展中有一種插件系統可以動態地添加/刪除熱鍵。

添加一個消息過濾器只在.NET運行消息循環時才起作用 - 這不是VS中的情況。

感謝您的支持!

回答

4

添加熱鍵的最佳方式是繼續並定義您的命令,而不使用任何鍵綁定。基本上確保命令MyExtension.MyOperation可用,但綁定到沒有鍵。

在運行時,您可以抓取擴展命令的DTE.Command對象。它可通過DTE對象上的Commands屬性獲得。從那裏您可以通過設置Binding屬性來更改特定命令綁定的鍵。

例如,如果你想改變結合CTRL + O我會做以下

command.Binding = "Global::ctrl+o"; 

的語法鍵綁定實際上是在MSDN上相當有據可查。

+0

由於賈裏德,問題是,我甚至不知道哪個命令將可用,因爲插件會向他們提供。我最後的手段是定義一個固定數量的虛擬命令,插件可以自己註冊。但是,這似乎對我完全是瘋了。 – 2012-02-01 15:31:40