51Testing软件测试论坛

标题: 求助:如何用Sys_Execute()打开cmd.exe? [打印本页]

作者: hf0313    时间: 2008-9-3 17:01
标题: 求助:如何用Sys_Execute()打开cmd.exe?
如题!
用Sys_Execute(cmd.exe)并不能看到cmd的窗口。
如果用Sys_Execute(start cmd.exe)则脚本执行到此句就不往下执行了!
请问如何操作才能看到cmd的窗口呢?
作者: hf0313    时间: 2008-9-8 10:22
自己先顶一下
作者: jmy_1981    时间: 2008-9-9 17:03
标题: lz这里是要模拟command consle的操作吗?
如题。

lz这里的测试需求是要强制性的模拟,command consle的操作吗?(比如,开始菜单|运行|cmd|操作……)

lz这里,sys_execute()是调用的api的,所以必须有返回值,如果没有返回值的话,那st是会一直停在那里的,
所以,楼主看到的可能是这个现象,这个是正常的。

lz如果不是强制性的要录制command consle的操作,lz可以试试shell的脚本吗?
/* code dummy */

[-] dll "shell32"
        [ ] int ShellExecuteW (int hwnd, String lpOperation, String lpFile, string lpParameters,String lpDirectory, int nShowCmd)
[ ]
[-] testcase DevMan() appstate none
        [ ] INTEGER iHandle      = Desktop.GetHandle()
        [ ] STRING  lpOperation  = "open"
        [ ] STRING  lpFile       = "cmd.exe"
        [ ] STRING  lpParameters = " "
        [ ] STRING  lpDirectory  = "c:\windows\system32"
        [ ] INTEGER iShowCmd     = 5
        [ ]
        [ ] ShellExecuteW (iHandle,lpOperation,lpFile,lpParameters,lpDirectory,iShowCmd)
[ ]
/* end code dummy */

lz看看,上面这个方法可以吗?shell的参数,lz可以参考msdn或者其他资料。
希望有帮助。
作者: jmy_1981    时间: 2008-9-9 17:08
标题: lz能尝试用shell试试看吗?
如题。

lz这边因为sys_execute ()函数是必须要返回值的,
所以,在没有返回值的情况下,lz就会看到st停滞的现象。

lz能尝试使用shell吗?
/* Code Dummy */
[-] dll "shell32"
        [ ] int ShellExecuteW (int hwnd, String lpOperation, String lpFile, string lpParameters,String lpDirectory, int nShowCmd)
[-] testcase DevMan() appstate none
        [ ] INTEGER iHandle      = Desktop.GetHandle()
        [ ] STRING  lpOperation  = "open"
        [ ] STRING  lpFile       = "cmd.exe"
        [ ] STRING  lpParameters = " "
        [ ] STRING  lpDirectory  = "c:\windows\system32"
        [ ] INTEGER iShowCmd     = 5
        [ ]
        [ ] ShellExecuteW (iHandle,lpOperation,lpFile,lpParameters,lpDirectory,iShowCmd)
[ ]
/* End Code Dummy */

希望有帮助。
作者: water0661    时间: 2008-9-9 22:08
标题: SYS_Execute("start cmd.exe") 可以看到命令窗口
当你关闭了命令窗口就可以往下执行了
作者: kettleyang    时间: 2008-9-15 16:03
告诉你个简单的办法
silktest 有个框架文件 bwcompat.inc
use " bwcompat.inc"
testcase startCMD() appstate none
  APP_Start("CMD")
作者: harold_zou    时间: 2008-9-17 16:49
再简单点,我们手工怎么打开就让SilkTest怎么做就可以了
        [ ] Taskbar.TypeKeys ("<LeftWin-r>")
        [ ] DialogBox("Run").ComboBox("#1").SetText ("cmd")
        [ ] DialogBox("Run").TypeKeys ("<Enter>")
Taskbar是内建的对象可以直接用的,你可以把它定义在你的框架中。。。。




Harold_zou
个人博客http://zou-hailong.blogspot.com
作者: lantianwei    时间: 2008-9-17 16:58
呵呵 大家方法都不错 我也提供一个方法
http://www.lantianwei.com/LTtopic.aspx?topicid=46
作者: hf0313    时间: 2008-10-6 15:04
多谢大家的帮忙!!! 接下来我会一一实验!!!感谢~~~~
作者: hf0313    时间: 2008-12-1 15:24
标题: 使用情况
各位提供的方法都能解决问题。
其中jmy_1981的方法除了适用于cmd.exe之外,还可用来打开其他文件夹下的exe文件。
kettleyang提供的方法更为便捷。
多谢各位的帮忙




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2