本帖最后由 m765555 于 2015-3-13 21:48 编辑
本人是想打开记事本后,点击关闭按钮时,想手动加个关闭的提示,提示确定和取消两个选择。当鼠标点击关闭时,记事本窗口隐藏,如果选确定则直接关闭记事本,如果选取消则重新显示记事本。此功能成功后想用于其它软件中,代码一直未能成功,请各位高手,大大们,帮忙瞧一瞧,研究一下,感谢。代码如下:Opt("GUIOnEventMode", 1)
#include <GUIConstantsEx.au3>
Global $soft_pid=Run("notepad.exe")
Global $soft_hand=_pid_jb($soft_pid)
;MsgBox(1+64+262144,"提示",$soft_hand) ;显示一下句柄看看是否正确。
GUISetOnEvent(-3,'close_soft',$soft_hand)
While 1
Sleep(100)
WEnd
Func close_soft()
$xx=MsgBox(1+64+262144,"提示","确定关闭记事本吗?")
If $xx=1 Then
Exit ;如果点击确定则把窗口关闭。
ElseIf $xx=2 Then
GUISetState (@SW_SHOW ,$soft_hand) ;如果点击取消则把窗口再显示出来。
EndIf
EndFunc
Func _pid_jb($pid) ;此函数是通过pid获取句柄。
Dim $jb = ""
While $jb = ""
$win_list = WinList("[REGEXPTITLE:.+]")
For $i = 1 To $win_list[0][0]
If BitAND(WinGetState($win_list[$i][0]), 2) And WinGetProcess($win_list[$i][1], "") = $pid Then $jb = $win_list[$i][1]
Next
WEnd
Return $jb
EndFunc ;==>pid_jb
|