找回密码
 加入
搜索
查看: 5619|回复: 15

[AU3基础] (已解决)母程序如何因子程序的结束而退出

 火.. [复制链接]
发表于 2012-6-26 15:11:44 | 显示全部楼层 |阅读模式
本帖最后由 faceyao 于 2012-6-26 22:44 编辑

B为A的子程序。

如何当点了B子程序的关闭X退出时,A程序也关闭退出?。

思路应该把两个程序分开写,还是用fileinstall更合适,

谁能帮忙写个这样的框架代码,谢谢,
发表于 2012-6-26 15:41:24 | 显示全部楼层
回复 1# faceyao


    搜索论坛 ‘子窗口’
 楼主| 发表于 2012-6-26 15:56:58 | 显示全部楼层
回复 2# 半芯竹

谢谢,搜索过了,没有同类的,
发表于 2012-6-26 17:00:49 | 显示全部楼层
B程序退出时kill掉A程序的进程。
发表于 2012-6-26 17:52:52 | 显示全部楼层
把母进程的PID作为参数传递给子进程,检测母PID退出则退出自身
发表于 2012-6-26 18:25:14 | 显示全部楼层
好想设定退出的A窗口也可以 没试过纯想的
发表于 2012-6-26 18:26:10 | 显示全部楼层



If 0 = $CMDLINE[0] Then
        ;母进程代码
        Run(@ScriptFullPath & ' ' & @AutoItPID)
        Sleep(10000)
        Exit
EndIf

;子进程代码

Local $PID = Number($CMDLINE[1])
While ProcessExists($PID)
        Sleep(10)
WEnd
Exit

评分

参与人数 1金钱 +20 收起 理由
faceyao + 20 谢谢,我试试,

查看全部评分

 楼主| 发表于 2012-6-26 19:55:18 | 显示全部楼层

非au3

本帖最后由 faceyao 于 2012-6-26 20:14 编辑

看到楼上码上代码,辛苦了,分先给您,谢谢了,

如果子进程不是au3程序,而是一个独立的绿色软件,比如ss.exe,本身没有检测母PID的功能,请问代码该怎么改,万分感谢!
 楼主| 发表于 2012-6-26 20:45:51 | 显示全部楼层
回复 7# Qokelate

运行您的代码之后,提示:


Error: "EndI声明没有匹配的        "If"声明.
发表于 2012-6-26 20:59:49 | 显示全部楼层
母程序先启动,建立pid清单,调用子程序,对比pid清单,找出新出现的符合子程序名的pid,一直循环判断,如果该pid消失,母程序退出
发表于 2012-6-26 21:18:54 | 显示全部楼层
运行子程序后让母程序等待子程序进程 结束而结束
ProcessWaitClose
 楼主| 发表于 2012-6-26 21:22:14 | 显示全部楼层
回复 10# kevinch

通过任务管理器 查看ss.exe的pid每启动一次都是不同的,它每次都变化的,我又如何找出新出现的符合子程序名的pid呢,而且,启动其他软件,会不会误认为是这个ss.exe软件呢,因为也是一个新的pid啊,
发表于 2012-6-26 21:55:05 | 显示全部楼层
回复 12# faceyao
认真读我写的每一个字
发表于 2012-6-26 21:56:24 | 显示全部楼层
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金钱 +20 收起 理由
faceyao + 20 谢谢斑竹,

查看全部评分

发表于 2012-6-26 22:17:32 | 显示全部楼层
回复 1# faceyao


  最简单的,B里一个EXIT(没考虑控件和其他现场的清理)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 08:30 , Processed in 0.094900 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表