可以采用另开监视线程的方式来做,既不会影响整体的运行流程,还能及时的监测到。
_rocopy();这个是运行备份调用的
ConsoleWrite(@CRLF&@TAB&"我正在等待进程robocopy.exe出现……") ;输出调试信息,便于查看
Do ;等待进程创建成功
Sleep(100)
Until ProcessExists("robocopy.exe")
ConsoleWrite(@CRLF&@TAB&"好了,进程robocopy.exe出现了,接下来,我将启动一个线程监测进程。当进程关闭后,我发送邮件。") ;输出调试信息
AdlibRegister("MyMoniteFunc",2000) ;启动一个定时器线程
While 1
Sleep(100)
WEnd
Func MyMoniteFunc() ;定时器要执行的操作函数
If Not ProcessExists("robocopy.exe") Then ;如果不存在这个进程了,则认为是进程退出了,执行发送邮件操作
ConsoleWrite(@CRLF&@TAB&"监测中-进程关闭了,我要发送邮件了!")
_sendmail();这个是发送邮件操作函数
AdlibUnRegister("MyMoniteFunc") ;发送完了之后终止定时器
MsgBox(64,"提示","右键已经发送完毕了,我退出了哦~")
Else
ConsoleWrite(@CRLF&@TAB&"监测中-进程robocopy.exe还没有关闭呢") ;如果进程还在,则输出调试信息
EndIf
EndFunc
|