#cs ----------------------------------------------------------------------------
版本:1.0.1
名称:自动运行.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <Process.au3>
#include <File.au3>
;判断脚本
$g_szVersion = "chasedream 1.1"
If WinExists($g_szVersion) Then Exit ; It's already running
AutoItWinSetTitle($g_szVersion)
;隐藏托盘图标
opt("TrayIconHide","1")
;配置文件
if not fileexists(@scriptdir &"\配置文件.ini") Then
iniwrite(@scriptdir &"\配置文件.ini","配置","延迟启动","0")
iniwrite(@scriptdir &"\配置文件.ini","配置","是否开启ARP绑定","1")
iniwrite(@scriptdir &"\配置文件.ini","同步时间","服务器IP或名称","")
iniwrite(@scriptdir &"\配置文件.ini","配置","执行文件","")
iniwrite(@scriptdir &"\配置文件.ini","QQ记录","保存路径","")
iniwrite(@scriptdir &"\配置文件.ini","映射","是否开启","1")
iniwrite(@scriptdir &"\配置文件.ini","映射","服务器IP","")
iniwrite(@scriptdir &"\配置文件.ini","映射","共享名称","")
iniwrite(@scriptdir &"\配置文件.ini","映射","映射盘符","")
EndIf
;定义变量
$sleep = iniread(@scriptdir &"\配置文件.ini","配置","延迟启动","")
$arpoff = iniread(@scriptdir &"\配置文件.ini","配置","是否开启ARP绑定","1")
$nettime = iniread(@scriptdir &"\配置文件.ini","同步时间","服务器IP或名称","")
$runfile = iniread(@scriptdir &"\配置文件.ini","配置","执行文件","")
$SavePath = iniread(@scriptdir &"\配置文件.ini","QQ记录","保存路径","")
$netoff = iniread(@scriptdir &"\配置文件.ini","映射","是否开启","1")
$netname = iniread(@scriptdir &"\配置文件.ini","映射","服务器IP","")
$netshare = iniread(@scriptdir &"\配置文件.ini","映射","共享名称","")
$netdisk = iniread(@scriptdir &"\配置文件.ini","映射","映射盘符","")
;延迟启动
sleep($sleep&"000")
;同步时间
_RunDos("net time \\"&$nettime&" /set /yes")
;ARP绑定
if $arpoff = "1" Then
Dim $s_TempFile
$s_TempFile = _TempFile()
RunWait(@ComSpec & " /c " & "ipconfig.exe /all" & " > " & $s_TempFile & "", "", @SW_HIDE)
$file = FileOpen(""& $s_TempFile &"", 0)
$ip = FileReadLine($file,31)
$ip1 = stringmid($ip, 45)
$mac = FileReadLine($file,27)
$mac1 = stringmid($mac, 45)
$lip = FileReadLine($file,35)
$lip1 = stringmid($lip, 45)
$arpa='arp -a'
$l_TempFile = _TempFile()
RunWait(@ComSpec & ' /c ' & ""& $arpa &" "& $lip1 & " > " & $l_TempFile & "", "",@SW_HIDE)
$lfile = FileOpen(""& $l_TempFile &"", 0)
$line3=FileReadLine($lfile,4)
$lmac1=stringmid($line3,25,17)
$arp='arp -s'
Runwait(@ComSpec & ' /c ' & 'arp -d', "", @SW_HIDE)
Runwait(@ComSpec & ' /c ' & ""& $arp &" "& $ip1 &" "& $mac1 &"", "", @SW_HIDE)
Runwait(@ComSpec & ' /c ' & ""& $arp &" "& $lip1 &" "& $lmac1 &"", "", @SW_HIDE)
elseif $arpoff = "0" Then
EndIf
;映射盘符
if $netoff = "1" Then
_rundos("net use "&$netdisk&" \\"&$netname&"\"&$netshare&" /persistent:no")
Elseif $netoff = "0" Then
EndIf
;执行文件
if $runfile<>"" and fileexists($runfile) Then
run($runfile)
ElseIf $runfile<>"" Then
msgbox("16","提示:","请正确配置执行文件路径.")
Exit
EndIf
;清理鼠标右键垃圾.
RunWait(@ComSpec & " /c " & "regsvr32 /u /s igfxpph.dll","",@SW_HIDE)
regdelete("HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers")
regwrite("HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\new","","REG_SZ","{D969A300-E7FF-11d0-A93B-00A0C90F2719}")
;QQ记录保存
if $SavePath<>"" and fileexists($SavePath) Then
$SavePath = IniRead(@scriptdir &"\配置文件.ini","配置","QQ记录保存路径","")
If $SavePath = "" Then
MsgBox(0,"错误","配置文件文读取错误,程序自动退出!")
Exit
Else
$S_End = StringRight($SavePath, 1)
If $S_End<>"\" Then $SavePath=$SavePath&"\"
EndIf
While 1
$list = ProcessList("QQ.exe")
If @error <> 1 Then
for $i = 1 to $list[0][0]
record($list[$i][1])
Sleep(10000)
next
EndIf
Sleep(10000)
WEnd
ElseIf $SavePath<>"" Then
msgbox("16","提示:","请正确配置QQ记录文件路径.")
Exit
EndIf
Func record($pid)
$path=Processpath($pid)
$fxg = StringInStr($path, "\", 0, -1)
$QQPath = StringMid($path, 1, $fxg)
$search = FileFindFirstFile($QQPath&"*.*")
If $search = -1 Then
MsgBox(0, "错误", "无任何文件或文件夹与指定的搜索字符串匹配")
Exit
EndIf
While 1
Sleep(10)
$file = FileFindNextFile($search)
If @error Then ExitLoop
If BitAND(FileGetAttrib($QQPath&$file)="D", StringIsDigit($file), StringLen ($file)>1) Then
$QQrecord=$QQPath&$file&"\MsgEx.db"
If FileExists($QQrecord) Then
$t = FileGetTime($QQrecord, 1)
If Not @error Then
$yyyymd = $t[0] & $t[1] & $t[2] & $t[3] & $t[4]
FileCopy($QQrecord,$SavePath&$file&"\"&$yyyymd&"MsgEx.db",9)
EndIf
EndIf
EndIf
WEnd
FileClose($search)
EndFunc
Func Processpath($iPID)
Local $aProc = DllCall('kernel32.dll', 'hwnd', 'OpenProcess', 'int', BitOR(0x0400, 0x0010), 'int', 0, 'int', $iPID)
If $aProc[0] = 0 Then Return SetError(1, 0, '')
Local $vStruct = DllStructCreate('int[1024]')
DllCall('psapi.dll', 'int', 'EnumProcessModules', 'hwnd', $aProc[0], 'ptr', DllStructGetPtr($vStruct), 'int', DllStructGetSize($vStruct), 'int_ptr', 0)
Local $aReturn = DllCall('psapi.dll', 'int', 'GetModuleFileNameEx', 'hwnd', $aProc[0], 'int', DllStructGetData($vStruct, 1), 'str', '', 'int', 2048)
If StringLen($aReturn[3]) = 0 Then Return SetError(2, 0, '')
Return $aReturn[3]
EndFunc
;结束脚本.