模拟鼠标/触摸和键盘

Posted

技术标签:

【中文标题】模拟鼠标/触摸和键盘【英文标题】:Simulate mouse/touch and keyboard 【发布时间】:2014-01-30 11:22:58 【问题描述】:

我需要在 Windows 8.1.NET 4.5WPF)中模拟鼠标点击/触摸屏按下和按键操作。这是针对某些流程/应用程序(所有在我正在开发的应用程序外部)的粗略无人值守自动化,因此没有任何东西可以让我以任何其他方式进行操作。

几年前,在 .NET 2.0 和 WinForms 中,我使用 SendInput API 做了类似的事情。

这仍然是在 .NET 4.5 和 WPF 中实现这一目标的实际方法,还是出现了更新的东西,或者甚至可能是 SendInput 的 WPF 包装器?

【问题讨论】:

看看C# Simulate Key Press 的帖子。如果这没有帮助,请查看 CodePlex 上的 Windows Input Simulator (C# SendInput Wrapper - Simulate Keyboard and Mouse) 项目。我的最后一个产品是来自 MSDN 的 How to: Simulate Mouse and Keyboard Events in Code 页面,它使用 SendKeys 类来做你想做的事。 【参考方案1】:

这种自动化可以通过微软的 UI 自动化框架来完成。为了更好地理解,请查看http://msdn.microsoft.com/en-us/library/ms747327(v=vs.110).aspx

一个很好的介绍可以在http://blog.functionalfun.net/2009/06/introduction-to-ui-automation-with.html找到

【讨论】:

这绝对适用于任何应用程序吗?举个例子。这可以模拟鼠标点击浏览器中运行的 Flash 应用程序吗? 我认为这行不通。对于这样的情况,我会给 Selenium 加上 flash-selenium 扩展仔细看看。 Selenium 用于网络浏览器 IIRC。我正在寻找一种万能的解决方案。目前是SendInput。感谢您迄今为止的回复!【参考方案2】:

前几天我不得不这样做以自动化将机器从睡眠模式唤醒的过程,mouse_event 在 Win8 中似乎仍然可以正常工作。没有尝试过关键事件,但我不明白为什么它们也不起作用。有some functional interop code here。

【讨论】:

以上是关于模拟鼠标/触摸和键盘的主要内容,如果未能解决你的问题,请参考以下文章

黑苹果鼠标键盘触摸板驱动:VoodooPS2Controller.kext

键盘怎么模拟鼠标操作

使用Robot类模拟鼠标键盘事件

Mac OSX 鼠标键盘事件的监听和模拟

c语言 怎样模拟鼠标键盘操作?

如何用触摸数据模拟鼠标点击?