国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

判斷一個(gè)32位程序是否結(jié)束

2019-11-18 17:52:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
Windows3.1允許程序員用GetModuleUsage()函數(shù)來(lái)測(cè)試一個(gè)程序或模塊是否仍在運(yùn)行。但在Windows95及WindowsNT下,每個(gè)程序都獨(dú)立地運(yùn)行在單獨(dú)的環(huán)境中,因此就排除了測(cè)試過(guò)程的狀態(tài)。

Microsoft提供了少量的函數(shù),如:WaitForSingleObject和WaitForMultipleObjects來(lái)完成該功能。盡管如此,這些函數(shù)并不是時(shí)時(shí)都有效。舉例來(lái)說(shuō),如果你調(diào)用WaitForSingleObject函數(shù)監(jiān)測(cè)InternetExplorer的運(yùn)行,同時(shí)你又選擇了“幫助”菜單中的“教程”項(xiàng),結(jié)果將會(huì)是系統(tǒng)死鎖,你不得不終止WaitForSingleObject函數(shù)的運(yùn)行。造成這種結(jié)果的原因是你點(diǎn)選了“教程”后,會(huì)返回給InternetExplorer一個(gè)地址,告訴瀏覽器轉(zhuǎn)到下一個(gè)網(wǎng)址。這種情況通常發(fā)生在一個(gè)程序是由調(diào)用它的父程序中的一個(gè)過(guò)程或?qū)ο笏鶈?dòng),反過(guò)來(lái)卻要等待父程序的結(jié)束。

本文的目的就是要解決這個(gè)問(wèn)題。

Declare

DeclareFunctionOpenaccess&,ByValbInherithandle&,ByValdwProcessid&)AsLong

DeclareFunctionGetExitCodeProcessLib"kernel32"(ByValhProcessAsLong,lpexitcodeAsLong)AsLong

'RequiredConstants
ConstSTILL_ACTIVE=&H103
ConstPROCESS_QUERY_INFORMATION=&H400

Code

SubShellWait(cCommandLineAsString)

DimhShellAsLong
DimhProcAsLong
DimlExitAsLong

hShell=Shell(cCommandLine,vbNormalFocus)

hProc=OpenProcess(PROCESS_QUERY_INFORMATION,False,hShell)

Do

GetExitCodeProcesshProc,lExit

DoEvents

LoopWhilelExit=STILL_ACTIVE

EndSub

調(diào)用ShellWait,控制權(quán)將不會(huì)交給一個(gè)過(guò)程,直到調(diào)用該過(guò)程的程序結(jié)束

查看GetExitCodeProcess的用法->


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 开封县| 辉南县| 扎囊县| 都昌县| 雅江县| 荔浦县| 仁寿县| 上虞市| 栾城县| 颍上县| 丰顺县| 枣强县| 民县| 南宁市| 泾源县| 江山市| 固镇县| 章丘市| 洪江市| 吉水县| 洞头县| 城市| 巩义市| 肥东县| 将乐县| 凤城市| 丹棱县| 张家川| 普定县| 海林市| 凭祥市| 江都市| 陇川县| 龙山县| 平乐县| 许昌县| 临朐县| 东乌珠穆沁旗| 博兴县| 定兴县| 石阡县|