本帖最后由 xiehuahere 于 2012-8-31 17:25 编辑
回复 1# 虎虎虎
一个看上去很无奈的方法,拷贝脚本自身到当前目录然后执行(不知道路径所以通过ctrl+v粘贴后回车执行,汗~!),再通过@ScriptDir获取当前路径。
很丑陋。仅供拓展一下思路:
#include <Misc.au3>
Local $RegKey = "HKEY_CURRENT_USER\Test", $RegFlag= "MyFlag", $RegPath = "CurrDIR"
If RegRead($RegKey, $RegFlag) == "" Then
RegWrite($RegKey, $RegFlag, "REG_DWORD", 1)
OnAutoItExitRegister("_Clean")
$sArray = StringSplit(@AutoItExe, '\')
$scriptName = $sArray[$sArray[0]]
HotKeySet("!d", "_NewDir")
HotKeySet("{ESC}", "_Exit")
Else
RegWrite($RegKey, $RegPath, "REG_SZ", @ScriptDir)
Exit
EndIf
While 1
Sleep(100)
$val = RegRead($RegKey, $RegPath)
If $val <> "" Then ;已获得当前路径
RegDelete($RegKey, $RegPath)
$DATE = '\' & @YEAR & ' - ' & @MON & ' - ' & @MDAY
DirCreate($val & '\' & $DATE)
FileDelete($val & '\' & $scriptName)
EndIf
WEnd
Func _NewDir()
Local $size = FileGetSize(@AutoItExe)
_ClipPutFile(@AutoItExe)
Sleep(1000)
WinActivate("[ACTIVE]")
Send("^v")
Sleep(2000) ;要等待脚本可执行文件拷贝完毕
Send("{ENTER}")
EndFunc
Func _Clean()
RegDelete($RegKey)
EndFunc
Func _Exit()
Exit
EndFunc
|