#Persistent
#NoEnv

programName = 探测qq启动与否 ; DEBUG: to do
programVersion =3.1 beta ; DEBUG: to do
programFullName = %programName% v%programVersion%
programAuthor = sunwind(1576157) liuyukuan@msn.com ; DEBUG: to do
description=目前实现探测qq启动与否
; construct tray menu -- DEBUG: optional
GoSub, trayMenu
; end of auto-execute section

;初始化
 v_Enable=0

 Process,Exist,qq.exe ;检测qq.exe进程是否存在
 pc1:=ErrorLevel ;将返回值存入pc1(获取qq.exe的PID), 如果不存在返回值为0。
 if (pc1=0)   ;等于0, 说明qq.exe进程不存在
 {
   qqOn1=0
   qqOff1=1
 }
 else
 {
   qqOn1=1
   qqOff1=0
 }

SetTimer, Label0, 2000

Return

Label0:
{

   Process,Exist,qq.exe
      pc1:=ErrorLevel ;将返回值存入pc1(获取qq.exe的PID), 如果不存在返回值为0。
      if (pc1=0)   ;等于0, 说明qq.exe进程不存在
      {
        qqOn2=0
        qqOff2=1
      }
      else
      {
        qqOn2=1
        qqOff2=0
     }
;~      MsgBox %qqOn2%,%qqOff2%
if Abs(qqOn2-qqOn1)!=0 And qqOn2=1
{
        QQON="qq启动了"
        msgbox ,4096,,%QQON%
}
Else If qqOn2=1
{
        QQON="qq运行中"
}

if Abs(qqOff2-qqOff1)!=0 And qqOff2=1
{
  QQON="qq退出了"
        msgbox ,4096,, %QQON%
}

Else IF qqOn2=0
{
         QQON="qq未启动"
}


;~         OutputDebug,%QQON%
;~         showtext(QQON)
     qqOn1:=qqOn2
     qqOff1:=qqOff2
}
Return


; construct tray menu -- DEBUG: optional
trayMenu:
   ; set tray tip
   Menu, Tray, Tip, %programFullName%
   ; disable standard menu items
   Menu, Tray, NoStandard
   ; show info message
   Menu, Tray, Add, &About, about
   ; separator
   Menu, Tray, Add
   ; terminate script
   Menu, Tray, Add, &Quit, quit
Return

$F4:: ;按F4停止开启 检测qq.exe 计时器
{
 v_Enable:=!v_Enable
 If (v_Enable=0)
 {
  SetTimer, Label0, OFF
  MsgBox,已经停止监测!
  ;~ SetTimer, Label1, Off
 }
 Else
 {
  SetTimer, Label0, 2000
  MsgBox,已经恢复监测!
  ;~  SetTimer, Label1, 3000
 }
}

Return
; [ALT]+[ESC]: terminate script
!ESC::
   Suspend ; exempt from suspension -- DEBUG: optional
   GoSub, quit
Return


; show info message -- DEBUG: to do, optional
about:
   MsgBox, 64, %programFullName%,
   ( LTrim
      %programFullName%
      %A_Space%by %programAuthor%

      简介:%description%

      Use [ALT]+[ESC] to terminate the program.
      Use [F4] 停止或者恢复检测.
   )
Return

; terminate script
quit:
   ; restore clipboard contents -- DEBUG: optional (see above)
   Clipboard := clipboardBak
   ; terminate script
   ExitApp
Return