【发布时间】:2014-01-19 18:31:13
【问题描述】:
您好,我开发了一个可以与我的网站一起使用的应用程序
SendKeys.send("{ENTER}") 在我的一个表单上提交信息。
有没有办法阻止它在应用程序之外运行?
例如,我试图在后台运行程序,当我浏览我的 Facebook 或在谷歌上时,它随机不断地按 Enter。
非常感谢您抽出宝贵时间提供任何帮助。
【问题讨论】:
标签: vb.net sendkeys keystrokes
您好,我开发了一个可以与我的网站一起使用的应用程序
SendKeys.send("{ENTER}") 在我的一个表单上提交信息。
有没有办法阻止它在应用程序之外运行?
例如,我试图在后台运行程序,当我浏览我的 Facebook 或在谷歌上时,它随机不断地按 Enter。
非常感谢您抽出宝贵时间提供任何帮助。
【问题讨论】:
标签: vb.net sendkeys keystrokes
简短的回答是查看进程可用的窗口和check the titles,看看它是否是您想要的页面。
If System.Diagnostics.Process.GetProcessesByName("firefox").MainWindowTitle = 'My Page Title'
...
End If
也就是说,有很多更好的方法可以做到这一点 - 如果您使用的是 firefox,请查看 GreaseMonkey,如果使用 Chrome,请查看 TamperMonkey。
两者都允许您将自定义 javascript 注入其 url 与您选择的模式匹配的任何页面。实际上,您可以在页面加载 30 秒后向submit a form(比如说)编写一些 Javascript。
如果选择了不同的选项卡并且不需要整个应用程序,这将有利于工作。
【讨论】:
SendKeys.Send 方法将不加选择地将击键发送到活动应用程序。无法使用此 API 来定位特定应用程序。
您可以更改您的应用程序以尝试验证活动应用程序也是您要发送密钥的应用程序。不过,这注定是一个不稳定的过程。无论您的验证有多好,在您完成验证后,活动应用总是有可能切换到另一个应用。
If VerifyActiveAppIsTarget() Then
SendKeys.Send("{Enter}") ' Active app could change before this runs
我会采用不同的解决方案在我的应用之间发送数据
【讨论】: