模拟鼠标/触摸和键盘
Posted
技术标签:
【中文标题】模拟鼠标/触摸和键盘【英文标题】:Simulate mouse/touch and keyboard 【发布时间】:2014-01-30 11:22:58 【问题描述】:我需要在 Windows 8.1(.NET 4.5、WPF)中模拟鼠标点击/触摸屏按下和按键操作。这是针对某些流程/应用程序(所有在我正在开发的应用程序外部)的粗略无人值守自动化,因此没有任何东西可以让我以任何其他方式进行操作。
几年前,在 .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。
【讨论】:
以上是关于模拟鼠标/触摸和键盘的主要内容,如果未能解决你的问题,请参考以下文章