2014-01-19 32 views
0

嗨香港专业教育学院开发了通过使用的SendKeys VB.net

SendKeys.send(“{} ENTER”)提交关于我的形式之一的信息与我的网站工作的应用程序。

有没有办法阻止它在应用程序之外运行?

例如即时通讯试图在后台运行该程序,当即时通讯浏览我的Facebook或谷歌时,它随机继续按下输入。

任何帮助非常感谢您的时间。

回答

1

简短的回答是看看可用于进程的窗口和check the titles,看看它是否是你想要的页面。

If System.Diagnostics.Process.GetProcessesByName("firefox").MainWindowTitle = 'My Page Title' 
    ... 
End If 

这就是说,有很多更好的方法来做到这一点 - 如果你使用Firefox,看看GreaseMonkey,如果在Chrome中,看TamperMonkey

两者都允许您将自定义JavaScript注入到URL与您选择的模式匹配的任何页面中。实际上,你可以在页面加载后30秒内写入一些Javascript到submit a form(比如说)。

如果选择了不同的选项卡以及不需要整个应用程序,这将有利于工作。

+0

三江源答案之间发送数据,生病deffo考虑这些的感谢! – MikeyT

0

SendKeys.Send方法将不加选择地将关键笔划发送到活动应用程序。没有办法使用此API来定位特定的应用程序。

您可以更改您的应用程序以尝试验证活动应用程序是您想要发送密钥的应用程序。尽管如此,这注定是一个棘手的过程。无论您的验证有多好,在验证完成后,活动应用总是可能切换到另一个应用。

If VerifyActiveAppIsTarget() Then 
    SendKeys.Send("{Enter}") ' Active app could change before this runs 

我会persue不同的解决方案我的应用程序

+0

感谢您的回答,似乎没有一个坚实的解决方案,这种不正确的看待不同的方式,再次感谢 – MikeyT