2012-10-08 77 views
0

有沒有辦法檢測到這種情況?C#檢測鼠標向左移動5次並向右移動5次

想象一下,你將有你在哪裏做東西和存在被監聽,等待,直到將鼠標移動的Backgroundthread的應用 - (不管多遠):

Left 
Right 
Left 
Right 
Left 
Right 
Left 
Right 
Left 
Right 

哪個火災觸發器或調用特定的方法。

任何想法?

+0

是的,你談論winforms? –

+0

不管winforms或wpf等等..應該是相等的 – eMi

+0

使用全局鼠標鉤子在這裏描述http://www.codeproject.com/Articles/7294/Processing-Global-Mouse-and-Keyboard-Hooks-in- C如果你的應用程序運行在後臺或隱藏窗口。 – DanielB

回答

2

從問題提供的角度看不到,爲此使用另一個線程。 只要在事件whatvere聽,並且檢測鼠標移動方向。

您可以通過減去由事件處理程序本身接收的corrdinates來實現。

這裏的東西來決定tollerance你將有檢測算法。

更清楚:

如果X值的差異較大,然後(比方說)1,計算爲移動到,如果小於-1,算上,像招留下

就是這樣。

1

使用附加到您窗口的MouseMove事件。每次觸發時存儲鼠標位置,並將當前位置與最後位置進行比較,以確定您是左移,右移還是非全部移動(即上移或下移)。

2

獲取鼠標指針的當前位置。移至新位置。如果新位置的X座標小於先前位置的X座標,則表示鼠標向左移動。相似的移動權。每次新的職位都將成爲基礎職位。你可以保留一個計數器,如果計數是5,可以做任何你想要的。