国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 积石山| 高要市| 临城县| 商河县| 临西县| 宁城县| 静海县| 湛江市| 新巴尔虎右旗| 扎赉特旗| 崇仁县| 铜山县| 桐城市| 分宜县| 获嘉县| 丽江市| 聂拉木县| 申扎县| 汕头市| 威远县| 青州市| 姜堰市| 芜湖县| 旬邑县| 尉氏县| 游戏| 南宁市| 平湖市| 梁平县| 郴州市| 隆林| 深泽县| 四平市| 德惠市| 阜阳市| 乐至县| 曲阳县| 宝兴县| 吐鲁番市| 柘城县| 仁寿县|