簡體   English   中英

如何模擬按下鼠標並保持在C#中

[英]How to simulate mouse button down and being hold in C#

我希望模擬鼠標左鍵單擊另一個窗口,並按住該按鈕約2秒鍾。 我嘗試了以下代碼:

        int WM_LBUTTONDOWN = 0x0201;
        int WM_LBUTTONUP = 0x0202;
        SendMessage(hd, WM_LBUTTONDOWN, new IntPtr(1), lParam);           
        Thread.Sleep(2000);
        SendMessage(hd, WM_LBUTTONUP, new IntPtr(1), lParam);

參數“ hd”是另一個窗口的句柄,“ lParam”包含坐標信息。 但這沒有達到我的預期。我使用斷點來調試代碼。 當“ WM_LBUTTONDOWN”消息發送到另一個窗口時,立即單擊另一個窗口中的按鈕,而不是按住它並等待消息“ WM_LBUTTONUP”。

當我使用真正的鼠標單擊並按住按鈕時,spy ++顯示“ WM_LBUTTONDOWN”和“ WM_LBUTTONUP”之間除了“ WM_MOUSEMOVE”之外沒有其他消息。 顯示的Spy ++圖片

那么,如何模擬鼠標按下並保持在C#中? 任何建議都會有所幫助,謝謝!

API函數“ mouse_event”可以解決問題。但是副作用是鼠標實際上會移動,在程序運行時您不能移動鼠標,否則會意外單擊錯誤的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM