这两天在学车,网上约车是一件很头疼的事,需要不停的刷来“捡漏”,因此决定自己写一个自动约车软件(原理和12306刷票软件一样)简化约车。
使用WinForm中的WebBrowser控件导航到约车界面,然后使用代码检查html文件,发现有可以约车的时段则自动点击约车,但是发现无论是程序自动点击还是用鼠标手工点击,都没反应,但是我在IE浏览器(我的是Win8自带的IE10浏览器)中都可以点击。
仔细思考,是IE浏览器的模式问题:
引自网络“从IE8开始,渲染引擎做了很大的改动,新增加一个标准模式(Standard Mode)。而不少软件都内嵌了IE的WebBrowser控件来显示网页,当用户机器升级到IE8以上版本,虽然WebBrowser控件也会随之升级新的渲染引擎,但,为了保证这些使用WebBrowser控件的应用软件能够工作起来和原来一样,IE8以上的WebBrowser控件在默认下是使用IE7的渲染模式(也就是兼容性视图模式)。”推荐阅读:现在南宁达内java培训学院(www.nntarena.com)正推出免费试听训练营,想学习参加软件培训开发的同学不妨来看看吧!
让WebBrowser在工作在标准模式下的方法:
32位系统中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
64位系统中HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
在其中增加一个Dword值,名字为咱们的程序的exe文件名,比如“海驾约车.exe”,值为十进制的9999即可。
当然这里有一个陷阱,在Visual Studio中调试的时候浏览器还是工作在兼容模式下,而直接双击bin/debug下的“海驾约车.exe”则不会。这是因为VS调试启动一个程序的时候默认是启动“海驾约车.vshost.exe”,所以把“海驾约车.vshost.exe”也加入注册表即可。 |