C# で keybd_event win api 呼び出しを使用しており、alt+ f4、alt+tabなどの特別なキーの押下をシミュレートしたいと考えています。shift私のプログラムは、 + p、altgr+のような「単純な」キーの押下wと、 の単純な使用を処理することもできますがtab、enter2 つの特別なボタン (特別なボタンの場合はalt、shift、ctrlまたは機能ボタン) が存在する場合、何もしないようです。私のプログラムはリモート デスクトップを介して複数のフォームを処理する必要があります。そのため、この keybd_event 呼び出しを使用していますが、たとえばalt+f4ローカルでも機能しません (メモ帳でテストしていますが、このコマンドで閉じることはできません)。誰が私が間違っているのか考えていますか? それらを機能させることさえ可能ですか?
前もって感謝します!
編集:
すべての win API 呼び出しを格納する DLLImport クラスを作成しました。たとえば、次のようなヘルパー メソッドもあります。
private void PressAlt()
{
DLLImport.keybd_event(0xA0, 0x38, 0, 0);
}
private void ReleaseAlt()
{
DLLImport.keybd_event(0xA0, 0x38, 0x0002, 0);
}
タブの場合、これを別の方法で使用しています:
DLLImport.keybd_event(0x09, 0x0f, 0, 0); //press tab
...
DLLImport.keybd_event(0x09, 0x0f, 0x0002, 0); //release tab
そして、今それをテストしています:
PressAlt();
PressSpecial("tab");
ReleaseSpecial("tab");
ReleaseAlt();