我正在寫一個應用程序,它接收來自讀取Wii Nunchuk的Arduino的數據。數據正在被正確接收和解析,但是當我使用MOUSEEVENTF_MOVE發送數據時,鼠標將只接收dx中的數據,而不是dy,意味着只有上下移動。我嘗試過使用靜態值(例如100)作爲dy,但仍然沒有成功。帶MOUSEEVENTF_MOVE的mouse_event無法在Y軸上移動
的DllImport代碼:
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)> _
Public Sub mouse_event(dwFlags As Long, dx As Long, dy As Long, dwData As Long, dwExtraInfo As Long)
End Sub
Private Const MOUSEEVENTF_MOVE As Integer = &H1
代碼用於移動鼠標:
mouse_event(MOUSEEVENTF_MOVE, dx, dy, 0, 0)
除非mouse_event子鋪了錯了,我不知道我做錯了。
的mouse_event()函數WINAPI已經過時了*長*時間,由SendInput()取代。出於一個非常好的原因,mouse_event()被破壞了,因爲它沒有辦法告訴你函數失敗。與SendInput()不同,它返回* bool *。所以沒有辦法發現你的[DllImport]聲明是完全錯誤的,使用* Long *只適用於VB6。 http://pinvoke.net網站是一個體面的地方找到正確的。 –
感謝漢斯,這絕對是我將爲未來的項目保留書籤的東西! :) – JohnHoulderUK