VB判断前一个程序是否运行完
实现这种等待的方法有四种:
一种是利用是利用Win32API的FindWindow函数。该函数可以搜索指定标题或类的窗口,你可以在调用第一个可执行文件后用FindWindow函数去找指定的窗口,如果找到了,然后编写下面的函数:一
FunctionIsRunning(ByValProgramID)AsBoolean'传入进程标识ID
DimhProgramAsLong'被检测的程序进程句柄hProgram=OpenProcess(0,False,ProgramID)IfNothProgram=0ThenIsRunning=True
Else
IsRunning=False
EndIf
CloseHandlehProgram
EndFunction
在Form_Click()中加入代码:
SubForm_Click()
DimX
="开始运行"
X=",1)
WhileIsRunning(X)DoEventsWend
="结束运行"
EndSub
第四种方法是利用Win32API的CreateProcess函数和WaitForSingleObject函数来进行这一工作。它的原理比较复杂,在此只介绍如何使用。首先建立一个模块(module),然后输入以下语句:
OptionExplicit
TypeSTARTUPINFO
cbAsLong
lpReservedAsStringlpDesktopAsStringlpTitleAsStringdwXAsLongdwYAsLong
dwXSizeAsLongdwYSizeAsLongdwXCountCharsAsLongdwYCountCharsAsLongdwFillAttributeAsLongdwFlagsAsLongwShowWindowAsIntegercbReserved2AsIntegerlpReserved2AsLonghStdInputAsLonghStdOutputAsLonghStdErrorAsLong
EndType
TypePROCESS_INFORMATION
hProcessAsLonghThreadAsLongdwProcessIDAsLongdwThreadIDAsLong
EndType
GlobalConstNORMAL_PRIORITY_CLASS=&H20&
GlobalConstINFINITE=-1&
DeclareFunctionCloseHandleLib"kernel32"(hObjectAsLong)AsBoolean
DeclareFunctionWaitForSingleObjectLib"kernel32"(ByValhHandleAsLong,ByValdwMillisecondsAsLong)AsLong
DeclareFunctionCreateProcessALib"kernel32"(_
ByVallpApplicationNameAsLong,_
ByVallpCommandLineAsString,ByVallpProcessAttributesAsLong,ByVal
VB判断前一个程序是否运行完 来自淘豆网m.daumloan.com转载请标明出处.