falseface_man 发表于 2012-11-22 17:10:31

求助高手:为什么用systemutil.run和invoke_application无法打开部分.exe文件

我用systemutil.run和invoke_application命令试图打开几个自己编写的程序,发现有些程序要么打开会报应用程序错误(说引用某段内存地址不能为read什么的),要么在.exe打开一半就自动退出(看到界面闪了一下就没了)。但我用Record and Run Setting直接加载打开的话,就全部能够正常打开,难道Record and Run Setting和systemutil.run打开的方式不同吗?
我的程序都会在初始化时加载视频捕捉卡,是不是这个引起的?或者说使用systemutil.run或invoke_application命令时,对打开的.exe文件本身有什么限制吗?

xjwldlover 发表于 2012-11-22 19:40:16

以下建议是由浏览器开启异常的场景做出的类推,未必正确,仅供参考~

systemUtil.run是通过命令行的方式打开应用,如果你复制你的应用路径到【运行】窗口然后回车可以打开的话,那么使用QTP应该也可以打开。
①,如果可以通过运行打开。那么问题应该出现在你应用的启动过程上,在systemUtil.run这里设置个断点,打开进程管理器,在运行代码前中后多截几次图,与手工启动时的截图对比,看是否有进程异常(随应用异常启动和关闭的进程)。
②如果通过运行方式也打不开。那么研究一下你的应用启动方式吧。

falseface_man 发表于 2012-11-23 09:34:12

果然如楼上的高手所说,systemutil.run是通过命令行方式打开的,我在MS-DOS环境下运行我的程序,也报同样的错误,那问题应该是我的程序在初始化时,加载了一些windows的驱动吧,看来不大好解决啊。
不知道QTP有没有别的打开.exe的方式,可以在windows界面下直接打开.exe文件,不知道Record and Run Setting是怎么操作的,为什么这个就可以打开?

泰然 发表于 2012-11-23 10:43:19

将windows资源管理器和你在windows资源管理器中双击打开这个程序一起录制进来。

xjwldlover 发表于 2012-11-23 11:18:30

将windows资源管理器和你在windows资源管理器中双击打开这个程序一起录制进来。
泰然 发表于 2012-11-23 10:43 http://bbs.51testing.com/images/common/back.gif

LZ试一下泰然的方法,将打开应用的过程录制一下,QTP会自动生成一个SystemUtil的带参语句,可能存在特殊参数哦,你使用QTP生成的语句重新运行看是否报错
页: [1]
查看完整版本: 求助高手:为什么用systemutil.run和invoke_application无法打开部分.exe文件