macOSでは、キーの組み合わせCMD+Backtick
を使用して、英語のキーボードを使用しているときにアプリケーションの開いているウィンドウを切り替えることができます。たとえば、ドイツ語のキーボードでは、組み合わせはCMD+<
です。このショートカットは、System Preferences
- >Keyboard
- >Shortcuts
- >Keyboard
- >Move focus to next window
を使用して設定することもできます。システム環境設定でプログラムによって設定されたmacOSキーボードショートカットを取得するには?
FLTKを使用している私のマルチウィンドウのGUIアプリケーションでは、このショートカットを利用したいが、ユーザが自分のシステムに設定した組み合わせをどのように取得するのか分からない。だから私が探しているのは、このMacのMove focus to next window
に使用されているキーの組み合わせを与えるmacOSシステムコールです。
もちろん、FLTKを使ってやや組み込みの方法があるのであれば、ネイティブシステムコールを使用する必要はありません。この問題のためにグーグルで
は
アップデート2017年8月10日 OOのanswerは、追加の研究のために私にいくつかのアイデアを与えた...悪夢です。 ASCIIコードが「B」のためだそれ:私は以来、好みがキー27
27 = {
enabled = 1;
value = {
parameters = (
98,
11,
524288
);
type = standard;
};
};
パラメータ1(98)には、より正確には、com.apple.symbolichotkeys
に格納されていることを学びました。最初のパラメータには、ショートカットのASCIIコードが使用されます。ASCII文字以外の場合は65535です。
パラメータ2(11):これはkVK_ANSI_B(source)のキーボードコードです。これらのコードはキーボードによって異なります。米国のキーボードではkVK_ANSI_Zは0x06、ドイツ語のキーボードでは0x10です。
パラメータ3(524288):修飾キーのためです:
0x000000 => "No modifier",
0x020000 => "Shift",
0x040000 => "Control",
0x080000 => "Option",
0x100000 => "Command",
(0x80000が524288.に等しい)
だから私の仕事は、単に取得、defaults read com.apple.symbolichotkeys
の出力を解析するためのようですパラメータの辞書からのキーの組み合わせは、キーボードレイアウトに応じてこれらの組み合わせを正しく解釈し、これらの情報をFLTKアプリケーションでコールバックを設定するために使用します。
AppleScriptを使用している可能性があります。簡単なgoogle検索では、[this](http://www.macosxautomation.com/applescript/features/system-prefs.html)が生成されます。 AppleScriptコードは、bashで[osascript](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/osascript.1.html)を使用して呼び出すことができます(C++のシステムコールを使用) 。 – scohe001