除非下载程序是你自己写的,当下载完成后会通知主程序下载完成情况。否则shell无法简单实现你的愿望。
如果不是你写的下载程序,你可以注意一下下载完成后,那个下载程序是否有标题文字上的变化。如果有变化就可以检测其状态了,利用Win API函数里的FindWindow和GetWindow找到下载程序窗体句柄,再用GetWindowText检测标题文字变化。当然掌握WinAPI这种方法,你也不用SendKeys去发送键盘了,直接可以用SendMessage发送按键代码。然后丝毫不影响你做其它事情,可以让下载程序都在后台完成,前面能干别的。
WinExec是异步处理,所以不会等待程序返回而直接执行后面的代码。
可以调用WaitForsingleObject来同步等待进程结束,使用该函数会挂起调用此函数的进程,接受到信号量,立刻返回主线程。
以上实现方法:
WaitForsingleObject(Handle,INFINITE);
Handle这里要替换成你创建进程的句柄
因为进程结束后会返回个信号量以表示进程已结束,可以利用这个特性实现你所述的功能。
工具:
win10
解决方法如下:
1、登录win10系统,用管理员身份运行Powershell(可在Cortana搜索栏、运行和任务管理器中等多个地方输入Powershell,然后选择打开)
2、输入如下命令后回车
Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_InstallLocation)\AppXManifestxml”}
3、等待一会,该过程将自动完成,完成处应用就重置好了。
以上就是关于vb shell 等待程序完全载入全部的内容,包括:vb shell 等待程序完全载入、C++怎么判断调用的程序已运行结束,以便执行下一步语句。、win10程序老是无响应怎么办 程序经常未响应解决办法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)