はい、PostMessage を使用して可能です。プログラム Spy++ を使用しました (Visual Studio 内にあるか、ダウンロードできますhttp://mdb-blog.blogspot.com/2010/11/microsoft-spy-or-spyxx-for-download.html ) notepad.exe を実行し、 Spy++ を作成し、関数 FindWindow を使用してこのメモ帳を処理しました。次に、Spy->LogMessages を使用し、Tab Messages ですべてをクリアしてチェックボックスをキーボードのままにし、出力で Raw Message Parameters をチェックしました。
次に、メモ帳で alt+1 を押して、ウィンドウ メッセージの値を書き留めました。私は今、WM_KEYDOWN、WM_KEYUP、WM_SYSKEYUPなどを使用し、lParam、wParamの値を使用していることを知っています。
私の機能:
public void PressKeyWithAlt(uint key, uint lParamDown, uint lParamUp)
{
PostMessage(hWindow, WM_KEYDOWN, VK_CONTROL, 0x001D0001);
PostMessage(hWindow, WM_KEYDOWN, VK_MENU, 0x21380001);
PostMessage(hWindow, WM_KEYDOWN, key, lParamDown);
Delay(1000);
PostMessage(hWindow, WM_KEYUP, key, lParamUp);
PostMessage(hWindow, WM_SYSKEYUP, VK_CONTROL, 0xE01D0001);
PostMessage(hWindow, WM_KEYUP, VK_MENU, 0xC1380001);
}
たとえば、alt+1 の場合
PressKeyWithAlt(VK_1, 0x20020001, 0xE0020001);
助けてくれてありがとう。