簡體   English   中英

鼠標全局掛鈎 - WM_MOUSEMOVE 延遲

[英]Mouse Global Hook - WM_MOUSEMOVE delay

好的,所以有很多用於鼠標全局掛鈎的示例。

我的問題是如何為鼠標移動添加計時器/延遲。

這樣做的方法是什么? 我想也許我應該 Thread.Sleep() 檢測 WM_MOUSEMOVE ?

if (MouseMessages.WM_MOUSEMOVE == (MouseMessages)wParam)
   {
     Thread.Sleep(delay)
   }

謝謝。

恐怕您無法以這種方式減慢鼠標移動速度。 在這里,您只會收到有關新鼠標位置的通知,系統並不關心您對這個通知做了什么以及完成需要多長時間,或者它是否處於睡眠狀態。

我想你應該在每個“延遲”時間“記錄”鼠標位置,然后每次新的 WM_MOUSEMOVE 事件到達(並且坐標與記錄的坐標不同),那么你應該“重置”鼠標光標位置到保存的坐標。

當然,這直到 WM_MOUSEMOVE 在“延遲”時間內到達。 否則只需記錄一個新位置並等待下一個事件。

.NET 有 Cursor.Position 屬性,它應該允許你將鼠標光標移動到你想要的地方,其他語言應該有類似的,但我從未嘗試過,我不確定它在你的“全局”上下文中是否正確運行.

無論如何弄亂光標位置會讓用戶非常沮喪

也許您不想在“延遲”時間完全停止光標,也許您想用 <1 因子線性插入新位置與前一個位置? 這會減慢鼠標速度,但效果更平滑。

暫無
暫無

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

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