我目前正在遵循一个简单的自动点击应用程序指南。我正在使用的指南利用mouse_event
.
我看到的所有地方都说它mouse_event
已被弃用,最好使用SendInput
,但我还没有找到一个实际原因,为什么你应该使用一个而不是另一个。
甚至关于mouse_event的文档也声明“改为使用 SendInput”。
我的大部分经验都是在 java 中,我非常熟悉 thread.stop() 被弃用,因为它很危险。我正在寻找相同类型的解释。
我目前正在遵循一个简单的自动点击应用程序指南。我正在使用的指南利用mouse_event
.
我看到的所有地方都说它mouse_event
已被弃用,最好使用SendInput
,但我还没有找到一个实际原因,为什么你应该使用一个而不是另一个。
甚至关于mouse_event的文档也声明“改为使用 SendInput”。
我的大部分经验都是在 java 中,我非常熟悉 thread.stop() 被弃用,因为它很危险。我正在寻找相同类型的解释。
VOID WINAPI mouse_event(
_In_ DWORD dwFlags,
_In_ DWORD dx,
_In_ DWORD dy,
_In_ DWORD dwData,
_In_ ULONG_PTR dwExtraInfo
);
这是 mouse_event() 的声明。在你完成了一些 winapi 编程之后,这个函数的问题就很明显了。 它没有任何方法表明失败。keybd_event() 函数也有同样的问题。例如,您可以为 dwFlags 传递垃圾值,如果没有任何方法找出原因,它就无法工作。
几乎所有的 winapi 函数都有返回值,典型的是 BOOL 或 HANDLE。这让函数报告失败。您通常会调用 GetLastError() 来找出问题所在。
就像 SendInput() 一样。
mouse_event会立即让您考虑具有鼠标的设备,而不是所有设备。
因此,当您考虑任何可以处理触摸手势的设备时,就像许多移动设备和平板电脑一样,拥有一个代表它们的类要好得多;它还可能让开发人员考虑它需要处理或发送的所有其他类型的输入,以便在尽可能多的设备上工作