2

Visual Studio拡張機能/パッケージ内からグローバルホットキーを動的に追加する方法はありますか?

パッケージの*.vsctファイルでホットキーを宣言することはできません。実行時にどのホットキーを使用できるかわからないためです。拡張機能には、ホットキーを動的に追加/削除できるプラグインシステムがあります。

メッセージフィルターの追加は、.NETがメッセージループを実行している場合にのみ機能します。これは、VSの場合には当てはまりません。

ご協力ありがとうございました!

4

1 に答える 1

4

ホット キーを追加する最善の方法は、キー バインディングを使用せずにコマンドを定義することです。基本的に、コマンドMyExtension.MyOperationが使用可能であるがキーにバインドされていないことを確認してください。

実行時DTE.Commandに、拡張コマンドのオブジェクトを取得できます。Commandsオブジェクトのプロパティから利用できDTEます。そこから、Bindingプロパティを設定することで、特定のコマンドがバインドされているキーを変更できます。

たとえば、バインディングを次のように変更したい場合CTRL+oは、次のようにします

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

キー バインドの構文は、実際には MSDN でかなり詳しく説明されています。

于 2012-02-01T15:28:16.973 に答える