我正在关注一个简单的自动点击应用程序指南。我正在使用的指南使用mouse_event
。
我看到的任何地方都说mouse_event
已弃用,并且最好使用SendInput
,但我还没有找到为什么要使用其中一个的实际原因另一个。
即使mouse_event上的文档也说明了“使用SendInput”。
我的大多数经验都是在java中,我非常熟悉thread.stop()被弃用,因为它很危险。我正在寻找相同类型的解释。
答案 0 :(得分:3)
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()类似。
答案 1 :(得分:1)
mouse_event inmediatly让你想到一个有鼠标的设备,而不是所有设备。
因此,当您考虑任何可以处理触摸手势的设备时,就像许多移动设备和平板电脑一样,拥有代表它们的课程要好得多;它也可能让开发人员考虑它需要处理或发送的所有其他类型的输入,以便在尽可能多的设备上工作