MacのXcodeを用いて、プログラム上から操作スペースの移動(トラックパッドを3本指でスクロールさせることで、デスクトップを変える)をさせたいと思っています。
Xcodeのバージョンは9.0.1でMacOSはSierraです。
コードの言語はObjective-Cです。
例えば以下のような関数を作り、main関数からKeyEmulate関数を呼ぶと、command+Aを押したときと同じ「全選択」が実行されます。
void keyEmulate () {
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateHIDSystemState);
CGEventRef a = CGEventCreateKeyboardEvent(source, kVK_ANSI_A, true); CGEventSetFlags(a, kCGEventFlagMaskCommand); CGEventTapLocation location = kCGHIDEventTap; CGEventPost(location, a); CFRelease(a); CFRelease(source);
}
これの、
kCGEventFlagMaskCommandをkCGEventFlagMaskControlに、
kVK_ANSI_AをkVK_LeftArrowにすれば、
control+←(^←)で、操作スペースが変わるはずなのですが、←を押したときに近い動作、テキストの単語単位でカーソルが移動することになり、希望する動作になりません。
システム環境設定→キーボード→ショートカットのところには登録されていますし、実際にキーボードを押すと正しく動作することを確認しました。
また、ショートカットの割り当てを変えて、それに応じてプログラムも変更して実行しましたが上手く行きませんでした。
そもそも、自作のプログラムで操作スペースの移動をさせることは可能なのでしょうか。
使用する言語にこだわりはないので、何か良い方法があればご教授ください。
あなたの回答
tips
プレビュー