簡體   English   中英

如何在C#中以編程方式觸發鼠標左鍵單擊?

[英]How to programatically trigger a mouse left click in C#?

我怎樣才能以編程方式觸發鼠標上的左鍵單擊事件?

謝謝。

編輯:事件不是直接在按鈕上觸發的。 我的目標是Windows平台。

如果它在按鈕上是正確的,您可以使用

button1.PerformClick();

否則,您可以查看這篇討論模擬鼠標(和鍵盤)輸入的MSDN文章

此外, 該項目也可以幫助您。 在封面下,它使用SendInput

要執行鼠標單擊:

 [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;
        private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
        private const int MOUSEEVENTF_RIGHTUP = 0x10;

        public static void DoMouseClick()
        {
            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
        }

將光標移動到所需的位置:

[DllImport("user32.dll")]
        static extern bool SetCursorPos(int X, int Y);

        public static void MoveCursorToPoint(int x, int y)
        {
            SetCursorPos(x, y);
        }

https://web.archive.org/web/20140214230712/http://www.pinvoke.net/default.aspx/user32.sendinput

使用Win32 API發送輸入。

更新:

由於我不再使用Win32 API,因此當平台更改或網站不可用時,我不會更新此答案。 由於這個答案甚至不符合Stackoverflow標准(不包含答案本身,而是包含到外部,現在已經不存在的資源的鏈接),因此沒有必要給它任何積分或花費更多時間。

相反,請看看Stackoverflow上的這個問題,我認為這是一個重復:

如何在C#中模擬鼠標點擊?

暫無
暫無

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

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