[英]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.