【发布时间】:2010-10-30 07:58:15
【问题描述】:
当屏幕上出现颜色时,如何触发自动按键或鼠标单击事件 在其他应用程序或浏览器上?
【问题讨论】:
-
您会接受不在 C#、C++ 或 VB 中的答案吗?
-
是的,任何语言都可以......请告诉......
当屏幕上出现颜色时,如何触发自动按键或鼠标单击事件 在其他应用程序或浏览器上?
【问题讨论】:
这很大程度上取决于你想要什么。你想把钥匙寄到
所有这些都会导致针对特定应用程序的问题以及活动窗口的变化。
SendKeys 向活动应用发送消息。这是一个高级函数,采用一个对一系列键进行编码的字符串。
keybd_event 级别非常低,会注入全局按键。在大多数情况下,SendKeys 更易于使用。
mouse_event 模拟鼠标输入。
SendInput 取代了这些功能。它更灵活,但使用起来有点困难。
使用固定目标窗口时,根据窗口的工作方式向其发送消息。但是由于这个doesn't update all states 它可能并不总是有效。但是你没有改变窗口焦点的竞争条件,这很有价值。
WM_CHAR在基本多语言平面(16位)中发送一个字符WM_UNICHAR 发送支持整个 unicode 范围的字符WM_KEYDOWN 和 WM_KEYUP 发送将由键盘布局转换为字符的键。我的建议是在针对特定窗口/应用程序时首先尝试使用消息,并且只有在失败时才尝试使用较低级别的解决方案之一。
【讨论】:
当一种颜色出现在其他应用程序或浏览器的屏幕上时
我使用 OpenCV 和 C++ 编写了一个程序,用于通过手指手势操作鼠标。我用了 3 个色条来实现 3 个鼠标功能。
每当相机检测到这些颜色时,相关功能就会发生,我使用mouse_event 来执行鼠标功能。 欲了解更多信息,您可以阅读我的code、blog、video。
【讨论】:
我不是 100% 确定你想要什么,但如果你只是在运行链接 button.Clicked 事件的方法,那么你可以像任何其他方法一样手动运行该方法。
【讨论】:
您可以使用 .NET SendKeys 类发送击键。 模拟鼠标点击需要 P/Invoke。 我不知道如何检测屏幕上的颜色。
【讨论】: