私の特定のケースでは、キーボードのキーストロークをDosBoxに送信しようとしています(Windowsコマンドプロンプトではなくdos-gamesエミュレータ) )。C#.net SendKey()を使用せずにmabyeをフックしてキーを送信する
私はSendKeysを使ってそれをやってみましたが、DosBoxはWindowsメッセージを処理するアプリケーションではないため、動作しません。私はこのように、キーボードフックを使用していることをやろうとしている瞬間に
: することは、第1の方法は、フックキーストロークを受け取り、(this exampleのように)次のアプリケーションを介してそれらを置くものです
private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
return CallNextHookEx(hookId, nCode, wParam, lParam);
}
private void GenerateKeyPress()
{
int vkCode = (int)Keys.Up; //My chosen key to be send to dosbox
IntPtr lParam = new IntPtr(vkCode);
IntPtr wParam = new IntPtr(255);
CallNextHookEx(hookId, 0, wParam, lParam);
}
ただし、CallNextHookEx()関数呼び出しは、アクセス違反の例外をスローします。
私はここで何を考える必要がありますか?