在我的具體情況下,我試圖創建一個應用程序,將鍵盤按鍵發送到DosBox(DOS遊戲模擬器,而不是Windows命令提示符)。C#.net發送鍵不使用SendKey()而是使用連接mabye
我試着用SendKeys來做,但那不起作用,因爲DosBox不是一個處理Windows消息的應用程序(一個例外告訴了我)。
目前,我正在試圖做的是使用鍵盤鉤子,像這樣: 第一種方法是接收鉤鍵擊,並把它們傳送到下一個應用程序(如在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()函數調用會引發訪問衝突異常。
我在這裏需要考慮什麼?