下面研究启动的一些细节。
如果修改图2.1中Mercury.WebBrowser的CLSID值,运行图1.1和图1.2会失败,但不影响图1.3的运行。
图2.2是MSIE的COM接口,这个值在Windows Vista及其以上系统中是无法更改的。
1. 如果保持图2.1中Mercury.WebBrowser的CLSID值不变,但改变图2.3中IEXPLORE.EXE默认值,运行图1.1会失败。“App Paths”属于系统级别的设置,在开始菜单运行时若没输入完整路径名Windows将会从这里作为Search Paths匹配。为了验证QTP启动MSIE不是通过COM运行的,把"%programfiles%\Internet Explorer"整个目录复制到其他位置,然后更新图2.3中IEXPLORE.EXE默认值指向新位置,重新运行图1.1,在任务管理器中查看QTP运行的MSIE进程位置,确定了它来自新位置;但这样仍然不足让人信服,我们需要比较COM启动MSIE在当前修改的IEXPLORE.EXE默认值情况下是否正常,运行我先前写的IEAutoDemo,确定此时MSIE进程位于%programfiles%内。
2. 如果保持图2.1中Mercury.WebBrowser的CLSID值不变,但改变图2.4中PathToExe的值,运行图1.2会失败。
以上试验证明了QTP启动应用程序是通过CreateProcess完成的。
图3.1为图1.1和图1.2中启动浏览器网址保存在注册表的位置;图3.2为勾选了那个框后保存在注册表的位置。