(已解决)母程序如何因子程序的结束而退出
本帖最后由 faceyao 于 2012-6-26 22:44 编辑B为A的子程序。
如何当点了B子程序的关闭X退出时,A程序也关闭退出?。
思路应该把两个程序分开写,还是用fileinstall更合适,
谁能帮忙写个这样的框架代码,谢谢, 回复 1# faceyao
搜索论坛 ‘子窗口’ 回复 2# 半芯竹
谢谢,搜索过了,没有同类的, B程序退出时kill掉A程序的进程。 把母进程的PID作为参数传递给子进程,检测母PID退出则退出自身 好想设定退出的A窗口也可以 没试过纯想的
If 0 = $CMDLINE Then
;母进程代码
Run(@ScriptFullPath & ' ' & @AutoItPID)
Sleep(10000)
Exit
EndIf
;子进程代码
Local $PID = Number($CMDLINE)
While ProcessExists($PID)
Sleep(10)
WEnd
Exit
非au3
本帖最后由 faceyao 于 2012-6-26 20:14 编辑看到楼上码上代码,辛苦了,分先给您,谢谢了,
如果子进程不是au3程序,而是一个独立的绿色软件,比如ss.exe,本身没有检测母PID的功能,请问代码该怎么改,万分感谢! 回复 7# Qokelate
运行您的代码之后,提示:
Error: "EndI声明没有匹配的 "If"声明. 母程序先启动,建立pid清单,调用子程序,对比pid清单,找出新出现的符合子程序名的pid,一直循环判断,如果该pid消失,母程序退出 运行子程序后让母程序等待子程序进程 结束而结束
ProcessWaitClose 回复 10# kevinch
通过任务管理器 查看ss.exe的pid每启动一次都是不同的,它每次都变化的,我又如何找出新出现的符合子程序名的pid呢,而且,启动其他软件,会不会误认为是这个ss.exe软件呢,因为也是一个新的pid啊, 回复 12# faceyao
认真读我写的每一个字 GUICreate('')
Local $iBtn = GUICtrlCreateButton('计算器', 100, 100, 150, 25), $pid
GUISetState()
While 1
If $pid And Not ProcessExists($pid) Then Exit
Switch GUIGetMsg()
Case -3
Exit
Case $iBtn
$pid = Run('calc.exe')
EndSwitch
WEnd 回复 1# faceyao
最简单的,B里一个EXIT(没考虑控件和其他现场的清理)
页:
[1]
2