1

私の質問は、C++ から別のアプリケーションにショートカットを送信する方法です。たとえば、メモ帳が開いていて、CTRL + P などのショートカット、または CTRL + SHIFT + HOME、または ALT + F4 などのより複雑なショートカットを送信したいとします。1 つのキーを送信する方法を説明した多くの優れたチュートリアルを見つけました「A」や「ALT」のようなものですが、一緒に送信する方法が見つかりませんでした。

4

3 に答える 3

3

SendInput()またはを使用keybd_event()して、現在フォーカスのあるウィンドウにキーを送信できます。 SendInput()実際のキーボードからのイベントとキーボードイベントが混在しないため、より良い選択かもしれません。

// send CTRL+SHIFT+HOME
INPUT input[6];
memset(input, 0, sizeof(INPUT)*6);
input[0].type = INPUT_KEYBOARD;
input[0].ki.wVk = VK_CONTROL;
input[1].type = INPUT_KEYBOARD;
input[1].ki.wVk = VK_SHIFT;
input[2].type = INPUT_KEYBOARD;
input[2].ki.wVk = VK_HOME;
input[3].type = INPUT_KEYBOARD;
input[3].ki.wVk = VK_HOME;
input[3].ki.dwFlags = KEYEVENTF_KEYUP;
input[4].type = INPUT_KEYBOARD;
input[4].ki.wVk = VK_SHIFT;
input[4].ki.dwFlags = KEYEVENTF_KEYUP;
input[5].type = INPUT_KEYBOARD;
input[5].ki.wVk = VK_CONTROL;
input[5].ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(6, input, sizeof(INPUT));
于 2010-08-15T18:14:04.637 に答える
0

この種の「キーの組み合わせ」は通常、Microsoft Windows では Keyborad Accelerators と呼ばれます。MSDN の紹介ページ

于 2010-08-16T11:53:46.450 に答える
0

多数の WM_KEYDOWN に続いて多数の WM_KEYUP を送信できるので、DOWN ctrl、shift、home、UP home、shift、ctrl を送信してみてください。これでうまくいくはずです。

于 2010-08-15T17:09:49.680 に答える