2010-03-18 79 views
2

我有一個模擬鼠標點擊的程序。虛擬鼠標點擊問題

代碼是這樣的:

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] 
     public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo); 

     private const int MOUSEEVENTF_LEFTDOWN = 0x02; 
     private const int MOUSEEVENTF_LEFTUP = 0x04; 

public static void DoMouseClick(int x, int y) 
     { 
      Cursor.Position = new Point(x, y); 
      mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, x, y, 0, 0); 
     } 

此代碼的工作非常完美。例如,我每30分鐘調用一次該函數。但如果我按WINKEY + L(Windows被鎖定),只有光標移動但不按按鈕。

任何想法?

+0

我想登錄界面在不同的顯示環境。鼠標點擊將繼續執行程序。 – kenny 2010-03-18 15:32:35

+0

爲什麼你模擬鼠標點擊呢? – 2010-03-18 20:36:40

回答

4

在Windows登錄界面被設計爲不允許點擊和UI自動化,作爲一項安全功能,IIRC