VB6.0用ShellExecute调用某个exe后,如何判断该exe是否运行结束?

各位编程高人,我在用VB编写一个小程序时,需要调用一个exe文件完成部分计算,在计算完成后才执行后面的代码。我用ShellExecute调用的(由于需要,只能用ShellExecute调用,不能用Shell)。现在遇到的问题是,不知如何判断调用的exe是否执行完毕,请求高人帮助!

因为ShellExecute调用是打开这种文件的默认调用,而不是特定的程序,比如在A电脑,打开图片可能是系统默认的图片和传真查看器,而B电脑打开是ACDSEE,C电脑是某看图软件一样,没有办法确定的。
如果知道是什么软件打开,而且只有一个这个程序操作的,那么你使用FindWindow查找窗口句柄,存在则程序在运行,反之已结束。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-16
使用FindWindow查找窗口句柄,存在则程序在运行,反之已结束本回答被网友采纳

VB6.0用ShellExecute调用某个exe后,如何判断该exe是否运行结束?
因为ShellExecute调用是打开这种文件的默认调用,而不是特定的程序,比如在A电脑,打开图片可能是系统默认的图片和传真查看器,而B电脑打开是ACDSEE,C电脑是某看图软件一样,没有办法确定的。如果知道是什么软件打开,而且只有一个这个程序操作的,那么你使用FindWindow查找窗口句柄,存在则程序在运行,反之已...

请问vb6.0中打开exe文件的代码如何编写啊?
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;●hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面...

如何用vb6.0编写一个程序能实现查看某个文件格式的打开方式
lpFile |String|想用关联程序打印或打开的程序名或文件名 lpParameters|String|如lpFile是可执行程序,这里输入附加参数 lpDirectory |String|使用的完整路径 nShowCmd |Long |定义了如何显示启动程序的常数值 举例:打开一个网址(Text1.Text)Private Declare Function ShellExecute Lib "shell32....

VB6.0做的应用 点击按钮打开应用所在目录
Shell "C:\\windows\\explorer.exe " & App.Path, vbNormalFocus 打开软件自身所在目录。这里的shell需要绝对的explorer.exe文件路径,可能系统不是安装在C盘就出问题了,你可以使用API函数来获得windows的安装路径来替换C:\\windows\\。 百度 VB WINDOWS目录 U盘的问题需要你使用FileObjectSystem来获得...

我用VB6.0写了一个程序(不含恶意代码),360木马防火墙却说有木马存在...
对于各电脑操作系统的安全模块,如果用户自己用编程软件,如VB语言,C语言,易语言等编制的程序,在没有安全认证的情况下,会被电脑中的安全软件比如360等软件误报,这是因为这些安全软件的主病毒库中没有你编的这种程序的记录,系统会自动认为这是新的木马程序,所以会被误报成木马。

使用vb6.0编程调用Halcon软件中的一个程序,求教众大神怎么编程?
在VB里引用就可以直接在你的程序里创建对象(菜单:工程-引用),具体参考官方的文档(如果有的话)shell 只是启动exe文件而已,就跟你双击exe文件效果是一样的,并不能融合到你的程序里去,比如启动记事本(因为是系统工具,不需要提供详细的路径):shell "notepad"

vb6.0怎么打开跟程序在同一个目录下的文件夹?
你多了一"\\"改成 Call ShellExecute(0, "Open", "explorer.exe", App.Path & "mulujia", vbNullString, 1)或 Call ShellExecute(0, "Open", "explorer.exe", iif(len(app.path)>3,app.path & "\\",app.path) & "mulujia", vbNullString, 1)就可以了。请采纳!谢谢!

求解:(VB6.0)如何在程序中调用打开PDF文件?
下面的代码是调用系统默认程序打开PDF,注意修改文件路径D:\\help.pdf Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, By...

vb6.0关闭时弹出“0x005a8ea”指令引用的“0x608af85c”内存,不能为...
`打开VB6.0,然后菜单栏的"外接程序"-->"外接程序管理器"-->选择 source code control项,然后下面的多选去掉"在启动加载"和"加载\/卸载"的勾勾.重新启动VB就OK了`(当前操作关闭的时候也会有引用内存错误,那是程序已经加载到内存中了,不要管它,下次启动的时候就没事了.)好了,记得加分啊 ...

无效的过程调用或参数 (vb)
As String, ByVal nShowCmd As Long) As Long 函数调用:Public Sub ShellFile(ByVal strFile As String)Dim rtn As Long, hWnd As Long On Error Resume Next rtn = ShellExecute(hWnd, "OPEN", strFile, "", "", 1)End Sub 通过SheetFile可以自动启动对应的程序并打开文档。

相似回答