【发布时间】:2018-05-18 05:28:42
【问题描述】:
除了 System.Windows.Forms.SendKeys 类在 Windows 10 中似乎已被阻止/禁用/折旧之外,我在任何地方都找不到任何确定的信息。
我编写了一个演示程序来监控用户的击键,如果用户输入已知代码,它将弹出一个表单,然后转到文档数据库并返回各种字符串(公司名称/地址/联系人列表等)和用检索到的字符串替换键入的代码。 SendWait 用于将检索到的字符串发送到键入代码的任何程序。
我在公司的 Windows 7 台式机上构建了该程序,但是当我在我的个人 Windows 10 系统上运行它时,它无法运行。后来读了很多书,我觉得自己像个白痴,但我不能让他们继续这个项目,因为他们不会永远在 Win7 上。
所以我的问题是这种功能在 Windows 10 中是否肯定被禁用,或者是否有另一种方式或方法可以用来实现将文本插入正在运行的程序的这种行为。
任何帮助表示赞赏。
【问题讨论】:
-
您确定问题出在
SendKeys上吗?在我看来,Windows 10 更有可能阻止键盘嗅探程序的一部分。可能被怀疑为尝试仍然密码。 -
相对于(有效地)处理原始 Windows 消息,您是否考虑过通过 UI Automation 系统工作?
-
你也可以尝试直接使用this interop挂钩windows API。
-
感谢大家对此的所有帮助。我仍在努力,但仍不清楚。当我有解决方案时会发布。 Zohar - 是的,它是 sendkeys - SendKeys 功能很久以前就不再受支持,看来 Win10 是微软最终打破它的时候。 Damian - 我研究了 UI 自动化,但它太大了,有依赖关系并且面向测试,我认为这不是解决方案。
标签: c# winforms windows-10