当在程序中运行DOS命令时如何隐藏DOS窗口并判断其结束

问:我想在程序中运行有关DOS命令,可又不想让用户看到DOS窗口,并想判断一下DOS命令是否已运行结束,难死我了?
答:你的要求也太高了,这样试试吧:

第一步:定义全局外部函数:
Function long ShellExecuteA (long hwnd, string lpOperation ,String lpFile, String lpParameters, String lpDirectory, Long nShowCmd) Library "shell32.dll"
Function long FindWindowA (String lpClassName , String lpWindowName ) Library "user32.dll"
Function boolean IsWindow (Long hwnd ) Library "user32.dll"

[用API函数,可以隐藏应用程序的窗口,但是调用bat批处理命令时需要先建立一个PIF(批处理命令的快捷键方式)文件指定执行完成后关闭窗口(其中的一个属性),否则窗口不会自行关闭。]
第二步:在窗口上建立按扭,clicked事件中包含如下Script:
ulong ll_handle,lu_return
string ls_path
SetPointer(HourGlass!) //设置鼠标指针 //运行DOS批处理命令的快捷键方式,并将其窗口隐藏
lu_return = ShellExecutea(handle(parent), "open", "xxx.pif", "", ls_path, 0)
//最后一个参数改为 4,可以显示执行情况,0为隐藏窗口 if lu_return>32 then
ll_handle = 0 //循环至DOS窗口打开 Do While ll_handle = 0 ll_handle = FindWindowA("tty","xxx") yield() loop //等待DOS窗口关闭 Do While isWindow(ll_handle) Yield() Loop //应用执行完成 MessageBox("提示信息", "运行完毕!") end if
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值