【发布时间】:2010-11-03 22:49:43
【问题描述】:
我使用MOUSE_DOWN 和MOUSE_UP 编写了一个程序,使用Win32 在预定时间自动单击应用程序。它通常效果很好,只是我发现我需要放入一个
sleep 0.1
在MOUSE_DOWN 和MOUSE_UP 之间。 (使用 Ruby,它可以让您睡一小会儿)。
没有睡眠,有时点击无法通过。但我注意到有时,点击“太长”。点击实际上是在 Flash 应用程序的右箭头上。这个右箭头将转到列表中的下一个项目。因此,如果您MOUSE_DOWN 稍长一点,它实际上会移动 2 或 3 个项目,而不仅仅是 1 个项目。
所以我想知道,在这种情况下,有没有办法准确模拟 1 次点击。可能没有MOUSE_CLICK 事件?必须用MOUSE_DOWN和MOUSE_UP模拟?
(在Win32上它实际上被称为MOUSEEVENTF_LEFTDOWN和MOUSEEVENTF_LEFTUP,为了简单起见,它被称为MOUSE_DOWN。)
【问题讨论】:
-
鉴于您保留了 [perl] 标签,我不得不问我对您之前关于此问题的回答中的哪一部分不能解决您的问题:stackoverflow.com/questions/1007391/…
-
我开始使用 Win32:GUI 但它需要更多的安装,所以我开始研究 Ruby。 Win32:GuiTest 也需要安装吗?如果是点击,那可能会更好。它是否使用时间戳将点击作为 MOUSE_DOWN 和 MOUSE_UP 分开一段时间?
-
@Jian Lin 查看源代码,似乎立即发送一个鼠标按下事件,然后是一个鼠标向上事件(在同一位置),中间没有延迟。我想当我发表关于延迟的评论时,我正在考虑双击。 Win32::GuiTest 也需要安装。
标签: python ruby perl winapi windows