2013-06-25 69 views
0

您好我需要我的程序幫助,我在c#和Leap Motion Device中創建了控制檯應用程序,我的程序模擬虛擬鼠標,移動光標和左/右鍵,使用C#虛擬鼠標控制檯應用程序在後臺運行

[System.Runtime.InteropServices.DllImport("user32.dll")] 

public static void MouseClickLeft(int x, int y) 
     { 

      mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0); 
      mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0); 
     } 

     public static void MouseClickRight(int x, int y) 
     { 
      mouse_event(MOUSEEVENTF_RIGHTDOWN, x, y, 0, 0); 
      mouse_event(MOUSEEVENTF_RIGHTUP, x, y, 0, 0); 
     } 

我需要另一個應用程序運行這個程序,但鼠標控制只有在控制檯應用程序及其運行的主窗口,它停止工作的工作時,我做了左擊在桌面或其他應用程序。即時通訊初學者在編程與C#,有什麼我可以做,使其在後臺運行,仍然移動鼠標?

回答

0

看看一個例子我的鑰匙克隆應用程序如何做到這一點: https://github.com/Mataniko/WowKeyclone/blob/master/Interop.cs

對我來說,我設置與WH_KEYBOARD_LL鉤在你的情況下使用WH_MOUSE_LL。

上設置鉤子的更多信息可以在這裏找到: http://msdn.microsoft.com/en-us/library/windows/desktop/ms644959(v=vs.85).aspx

讓我知道在評論,如果您需要了解更多信息。

+0

你基本上可以使用整個班級的編輯 – Mataniko

+0

我看看你的程序,但我不明白,我想讓這個控制檯應用程序與Game Maker.exe一起工作,就像鼠標的輸出一樣應用程序變成遊戲的輸入。 –

+0

您將不得不鉤入該窗口句柄併發送輸入。這不是一個簡單的事情。查看同一項目中的KeyHandler.cs文件,瞭解如何將這些事件發送到另一個窗口。這裏也有很多例子:http://stackoverflow.com/questions/10355286/programmatically-mouse-click-in-another-window – Mataniko

2

要接收大躍進運動跟蹤數據,當您的應用程序是不是前臺應用程序,你必須設置背景框政策:

controller.SetPolicyFlags(Controller.PolicyFlag.POLICYBACKGROUNDFRAMES); 

你可以調用這個函數在任何時間,但結果是異步的,所以policyFlags屬性不會立即顯示更改。

相關問題