📄 ukill.au3
字号:
;钩子程序,启动第一U盘上的托盘及判断U盘状态
;Made by victor888, revised on 2007-11-21
#include <File.au3>
#include <array.au3>
Opt("TrayMenuMode",1) ; Default tray menu items (Script Paused/Exit) will not be shown.
;以下光盘盘符
$CDROM = StringLeft(@scriptdir, 2)
If FileExists(@systemdir & "\pecmd.exe") Then
ShellExecute("explorer.exe", "/n,/e," & $CDROM)
Exit
EndIf
If ProcessExists("vptray.exe") or ProcessExists("rtvscan.exe") or ProcessExists("savscan.exe") Then
MsgBox(64,"Hint","诺顿正在运行,将不在启动卡巴,程序退出。")
Exit
EndIf
$drvletter = "a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:"
$firstu = "z:"
$drives = _GetUSBDrives()
for $i=1 to UBound($drives)-1
If StringInStr($drvletter, $drives[$i]) < StringInStr($drvletter, $firstu) Then
$firstu = $drives[$i]
EndIf
$usbdrv = $usbdrv & $drives[$i] & " "
Next
$usbdrv=StringReplace($usbdrv,"0","") ;显示所有U盘
;以下判断U盘状态
If DriveStatus($firstu) <> "READY" Then
MsgBox(64, "hint", "U盘未就绪,请检查,程序退出!")
Exit
EndIf
$RegRun = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
If RegRead($RegRun, "avp")<>"" Then
If not ProcessExists("avp.exe") Then Run (RegRead($RegRun, "avp"))
$avpcom = StringReplace(RegRead($RegRun, "avp"),"activate.exe","avp.com")
$avpcom = StringReplace(RegRead($RegRun, "avp"),"avp.exe","avp.com")
$avpcom = StringReplace($avpcom,"""","")
Else
;以下将启动卡巴绿色版,要求病毒库位于U盘第一分区
If Not FileExists($firstu & "\utool\avp\bases") Then
If DriveSpaceFree($firstU & "\")>30 Then
MsgBox(64,"hint","可移动U盘或固定U盘第一分区不存在卡巴病毒库bases目录,将从光盘拷贝,请等待!")
If Not FileExists($firstu & "\utool\avp\bases") Then DirCreate($firstu & "\utool\avp\bases")
_FileCopy($CDROM & "\programs\avp\bases\", $firstu & "\utool\avp\")
WinWaitClose("正在复制...", "", 50000)
$avpcom = $CDROM & "\programs\avp\avp.com"
$basedir = $firstu & "\utool\avp"
Call("avp7")
$showkill = True
Else
MsgBox(64,"hint","可移动U盘或固定U盘第一分区剩余空间小于30M,无法从光盘拷贝病毒库!")
$showkill = False
EndIf
Else
$basedir = $firstu & "\utool\avp"
$avpcom = $CDROM & "\programs\avp\avp.com"
Call("avp7")
$showkill = True
EndIf
EndIf
;以下为托盘过程
$killitem = ""
If $showkill = true Then
$killitem = TrayCreateItem("对U盘进行杀毒")
TrayCreateItem("")
EndIf
$installitem= ""
If FileExists($firstu & "\utool\usoft.iso") Then
$installitem = TrayCreateItem("安装常用软件")
TrayCreateItem("")
EndIf
$redleafitem= ""
If FileExists($CDROM & "\redleaf.exe") then
$redleafitem = TrayCreateItem("启动超级工具箱")
TrayCreateItem("")
EndIf
$readmeitem = ""
If FileExists($firstu & "\utool\readme.txt") then
$readmeitem = TrayCreateItem("使用说明")
TrayCreateItem("")
EndIf
$aboutitem = TrayCreateItem("关于")
TrayCreateItem("")
$exititem = TrayCreateItem("退出所有")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $killitem
;对U盘进行扫描
Runwait ( $avpcom & " scan " & $usbdrv & " -e:a -i4", "", @SW_HIDE)
WinClose(@SystemDir & "\cmd.exe")
Case $msg = $readmeitem
ShellExecute("readme.txt", "", $firstu & "\utool", "edit",@SW_MAXIMIZE)
Case $msg = $installitem
If ProcessExists("vdm1.exe") Then
WinClose("Virtual Drive Manager")
WinWaitClose("Virtual Drive Manager")
EndIf
Run($CDROM & "\programs\VDM\VDM1.EXE")
WinWaitActive("Virtual Drive Manager")
Send("{ENTER}")
WinWaitActive("装载镜像文件")
$newisodisk = ControlGetText("装载镜像文件","",1011)
ControlSetText ( "装载镜像文件", "", 1001, $firstu & "\utool\usoft.iso" )
Send("{ENTER}")
WinSetState("Virtual Drive Manager","",@SW_HIDE)
If not ProcessExists("usoft.exe") then run($newisodisk & "\usoft.exe")
Case $msg = $redleafitem
run($CDROM & "\redleaf.exe")
Case $msg = $aboutitem
Msgbox(64, "关于:", "Version 2.0" & @CRLF &"Made by Vitor888" & @CRLF & "QQ:511519860" & @CRLF & "MSN:victor168@msn.com")
Case $msg = $exititem
if ProcessExists("avp.exe") Then ProcessClose("avp.exe")
if ProcessExists("avp7.exe") Then ProcessClose("avp7.exe")
if ProcessExists("avp.com") Then ProcessClose("avp.com")
if ProcessExists("vdm1.exe") Then WinClose("Virtual Drive Manager")
if ProcessExists("redleaf.exe") Then ProcessClose("redleaf.exe")
if ProcessExists("usoft.exe") Then ProcessClose("usoft.exe")
ExitLoop
EndSelect
WEnd
Func _FileCopy($fromFile,$tofile)
Local $FOF_RESPOND_YES = 16
Local $FOF_SIMPLEPROGRESS = 256
$winShell = ObjCreate("shell.application")
$winShell.namespace($tofile).CopyHere($fromFile,$FOF_RESPOND_YES)
EndFunc
Func _GetUSBDrives()
Local $aDletters[1]
$strComputer = "."
Local $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")
Local $colDiskDrives = $objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive")
For $objDrive In $colDiskDrives
If $objDrive.pnpdeviceid <> RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum", _
RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum","count")-1) then Continueloop
$strDeviceID = StringReplace($objDrive.DeviceID, "\", "\\")
Local $colPartitions = $objWMIService.ExecQuery _
("ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & _
$strDeviceID & """} WHERE AssocClass = " & _
"Win32_DiskDriveToDiskPartition")
For $objPartition In $colPartitions
Local $colLogicalDisks = $objWMIService.ExecQuery _
("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & _
$objPartition.DeviceID & """} WHERE AssocClass = " & _
"Win32_LogicalDiskToPartition")
For $objLogicalDisk In $colLogicalDisks
_ArrayAdd($aDletters,$objLogicalDisk.DeviceID )
Next
Next
Next
Return $aDletters
EndFunc
;自动激活
Func activation() ;activating and generating new key
If _iscon() Then
$timebegin = TimerInit()
While WinExists("[CLASS:AVP.ConfigureWizard]")
WinActivate("[CLASS:AVP.ConfigureWizard]")
send("T")
Sleep(200)
send("N")
While WinExists("[CLASS:AVP.ConfigureWizard]")
WinActivate("[CLASS:AVP.ConfigureWizard]")
If StringRight(ControlGetText("[CLASS:AVP.ConfigureWizard]","","[CLASSNN:AVP.Button42]"),2) = "F)" Then
Send("f")
EndIf
If StringRight(ControlGetText("[CLASS:AVP.ConfigureWizard]","","[CLASSNN:AVP.Button44]"),2) = "F)" Then
Send("f")
EndIf
If TimerDiff($timebegin) > 240000 Then
MsgBox(64, "Notice", "已经超过4分钟没有激活成功,程序将于2秒后关闭此窗口!", 2)
WinClose("[CLASS:AVP.ConfigureWizard]")
ExitLoop
EndIf
WEnd
Run(@ComSpec & " /c " & "reg export hklm\software\kasperskylab\licstorage """ & $basedir & "\key.reg""","" ,@SW_HIDE) ;export one month key
WEnd
Else
While WinExists("[CLASS:AVP.ConfigureWizard]")
WinClose("[CLASS:AVP.ConfigureWizard]")
WEnd
EndIf
EndFunc
Func avp7()
Run("regedit /s " & $CDROM & "\programs\avp\set.reg")
Run("regedit /s " & $CDROM & "\programs\avp\主动防御.reg")
Run("regsvr32 /s " & $CDROM & "\programs\avp\shellex.dll")
$AVP7="HKLM\SOFTWARE\KasperskyLab\protected\AVP7"
RegWrite($AVP7 & "\environment", "DataRoot", "REG_SZ", $basedir)
RegWrite($AVP7 & "\environment", "ProductRoot", "REG_SZ", $CDROM & "\programs\avp")
RegWrite($AVP7 & "\settings", "LoginImage", "REG_SZ", $CDROM & "\programs\avp\Skin\images\lgnkav.png")
RegWrite($AVP7 & "\settings", "Ins_ProductPath", "REG_SZ", $CDROM & "\programs\avp\")
RegWrite("HKLM\SOFTWARE\KasperskyLab\SetupFolders", "KAV7", "REG_SZ", $CDROM & "\programs\avp")
RegWrite("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\klogon", "DllName", "REG_SZ", "klogon.dll")
Call("createbat")
Sleep(3000)
Call("runavp")
;关闭过期窗口
While WinExists("[CLASS:AVP.LicenseExpirationWindow]")
WinClose("[CLASS:AVP.LicenseExpirationWindow]")
ProcessClose("avp.exe")
FileDelete($basedir & "\key.reg")
;removekey
regdelete ("HKLM\SOFTWARE\Microsoft\SystemCertificates\SPC")
regdelete ("HKLM\SOFTWARE\KasperskyLab\LicStorage")
Run($CDROM & "\programs\avp\avp.exe")
Sleep(3000)
WEnd
Call("activation")
EndFunc
;创建批处理
Func createbat()
FileWrite($basedir & "\avp.bat","start /wait " & $CDROM & "\programs\avp\avp.exe" & @CRLF & "regedit /s """ & $CDROM & "\programs\avp\delavp.reg""" & @CRLF & "REGSVR32 /S msxml3.dll" & @CRLF & "REGSVR32 /S vbscript.dll" & @CRLF & "REGSVR32 /S jscript.dll" & @CRLF & "del """ & $basedir & "\avp.bat""" & @CRLF & "exit")
EndFunc
;启动批处理
Func runavp()
Run($basedir & "\avp.bat","",@SW_HIDE)
Sleep(5000)
EndFunc
;判断网络连接
Func _IsCon() ;judge internet connection
Local $inetTest = DllCall("WinInet.dll","int","InternetGetConnectedState","int_ptr",0,"int",0)
Return $inetTest[0]
EndFunc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -