如何在傳統程序中單擊鼠標時模擬擊鍵。注意!該程序可能不知道的是,鼠標點擊忽略鼠標單擊併發送鍵盤輸入到外部應用程序
我與
IntPtr module = LoadLibrary("user32.dll");
_mouseHookHandle = (HookType.MouseLowLevel, _mouseDelegate, module, 0);
和測試試驗返回-1從HookProc
。但是當我這樣做時,SendInput
不會將我的輸入發送到應用程序。 如果我返回CallNextHookEx
,SendInput
的結果,但是然後鼠標單擊被髮送到傳統應用程序。
背景
我們有一個有特殊鍵盤控制的程序。按下鍵盤上的按鍵時,會發送一系列ESC和字母。程序然後根據鼠標放置在屏幕上執行操作。
我正在開發一個屏幕鍵盤,以便您可以在沒有此特殊鍵盤的情況下控制應用程序。用戶用鼠標選擇按鈕屏幕上的鍵盤。然後用戶將鼠標指針移動到他想要發送突擊隊的對象,然後再次單擊。但是,也就是說,鼠標點擊可能不會傳遞給程序,程序會在點擊鼠標時執行另一個操作。
你需要的PInvoke GetForegroundWindow + GetWindowThreadProcessId找出進程具有焦點。 –