自动退出360杀毒及安全卫士

自动退出360杀毒及安全卫士退出360安全卫士比较麻烦。旧版本的360安全卫士托盘图标处的右键菜单很简单,可以用键盘的方向键控制。但新版本的v8.5,右键菜单不再可以用键盘的方向键控制,用Au3Info又看不到菜单的更多信息,所以考虑设置菜单的相对坐标,用鼠标模拟点击;但此方法不够精确,容易受影响。
这是新版本(v8.5) 360安全卫士的右键菜单… 不再可以用键盘的方向键控制
退出360安全卫士(旧版本)的代码:

#Include <GuiToolBar.au3>
_SysTray_ClickItem("360安全卫士","right")
Func _SysTray_ClickItem($iTitle, $iButton = "left", $iClick = 1, $sMove = False, $iSpeed = 1)
 Local $hToolbar, $iButCount, $hButton, $cID, $i

 $hToolbar = ControlGetHandle("[Class:Shell_TrayWnd]", "", "[Class:ToolbarWindow32;Instance:1]");获取系统托盘的句柄

 $iButCount = _GUICtrlToolbar_ButtonCount($hToolbar);返回托盘按钮数量
 ;从0开始遍历托盘按钮
 For $i=0 To $iButCount-1
 $cID = _GUICtrlToolbar_IndexToCommand($hToolbar, $i);由于_GUICtrlToolbar_ClickButton只支持CommandID,所以先获取
 ;判断要点击的文本是不是当前获取的文本
 If StringInStr(_GUICtrlToolbar_GetButtonText($hToolbar, $cID), $iTitle) Then
 _GUICtrlToolbar_ClickButton($hToolbar,$cID,$iButton,$sMove,$iClick,$iSpeed)
 EndIf
 Next
EndFunc
;以上代码为,在系统托盘的360安全卫士图标处右键
Sleep(1000)
;在右键菜单按下向上方向键,选择"退出"
Send('{UP}')
Send('{ENTER}')

;激活弹出的确认退出窗口,通过按Tab键,选择"确定"
WinActivate("360安全卫士")
Send("{TAB 3}")
Send("{SPACE}")

退出360安全卫士(新版本v8.5)的代码:   (模拟鼠标点击经常点不准,有更好方法的请不惜赐教)

#Include <GuiToolBar.au3>
_SysTray_ClickItem("360安全卫士","right")
Func _SysTray_ClickItem($iTitle, $iButton = "left", $iClick = 1, $sMove = False, $iSpeed = 1)
 Local $hToolbar, $iButCount, $hButton, $cID, $i

 $hToolbar = ControlGetHandle("[Class:Shell_TrayWnd]", "", "[Class:ToolbarWindow32;Instance:1]");获取系统托盘的句柄

 $iButCount = _GUICtrlToolbar_ButtonCount($hToolbar);返回托盘按钮数量
 ;从0开始遍历托盘按钮
 For $i=0 To $iButCount-1
 $cID = _GUICtrlToolbar_IndexToCommand($hToolbar, $i);由于_GUICtrlToolbar_ClickButton只支持CommandID,所以先获取
 ;判断要点击的文本是不是当前获取的文本
 If StringInStr(_GUICtrlToolbar_GetButtonText($hToolbar, $cID), $iTitle) Then
 _GUICtrlToolbar_ClickButton($hToolbar,$cID,$iButton,$sMove,$iClick,$iSpeed)
 EndIf
 Next
EndFunc
;以上代码为,在系统托盘的360安全卫士图标处右键
Sleep(1000)
;设置坐标相对于菜单窗口,在右键菜单"退出"键处模拟鼠标点击左键(由于新版本的菜单无法使用键盘方向键操作,只好用模拟鼠标点击,但精确度低))
WinWaitActive("[active]")
AutoItSetOption("MouseCoordMode", 0)
MouseClick("left",60,335)

;激活弹出的确认退出窗口,通过按Tab键,选择"确定"
WinActivate("360安全卫士")
Send("{TAB 3}")
Send("{SPACE}")

退出360杀毒的代码:  (这个相对简单一点)

#Include <GuiToolBar.au3>
_SysTray_ClickItem("360杀毒","right")
Func _SysTray_ClickItem($iTitle, $iButton = "left", $iClick = 1, $sMove = False, $iSpeed = 1)
 Local $hToolbar, $iButCount, $hButton, $cID, $i

 $hToolbar = ControlGetHandle("[Class:Shell_TrayWnd]", "", "[Class:ToolbarWindow32;Instance:1]");获取系统托盘的句柄

 $iButCount = _GUICtrlToolbar_ButtonCount($hToolbar);返回托盘按钮数量
 ;从0开始遍历托盘按钮
 For $i=0 To $iButCount-1
 $cID = _GUICtrlToolbar_IndexToCommand($hToolbar, $i);由于_GUICtrlToolbar_ClickButton只支持CommandID,所以先获取
 ;判断要点击的文本是不是当前获取的文本
 If StringInStr(_GUICtrlToolbar_GetButtonText($hToolbar, $cID), $iTitle) Then
 _GUICtrlToolbar_ClickButton($hToolbar,$cID,$iButton,$sMove,$iClick,$iSpeed)
 EndIf
 Next
EndFunc
;以上代码为,在系统托盘的360杀毒图标处右键
Sleep(500)
;在右键菜单按下向上方向键,选择"退出"
Send('{UP}')
Send('{ENTER}')

;激活弹出的确认退出窗口,选择"确定"
WinWaitActive("[active]")
Send("{SPACE}")
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容