; ; AutoHotkey Version: 1.x ; Language: English ; Platform: Win9x/NT ; Author: A.N.Other ; ; Script Function: ; Template script (you can customize this template by editing "ShellNew\Template.ahk" in your Windows folder) ; flag_exe := 0 ;***************************************************** ;*************************************************** ;*************************************************** do_all_commands( cmds ) { global flag_exe Loop % cmds.MaxIndex() { cmd_set := cmds[a_index] prm_bum := cmd_set.MaxIndex() if ( prm_bum >= 2 ) { if ( cmd_set[1] != "" ) { _time := cmd_set[1] } if ( cmd_set[2] != "" ) { _func := cmd_set[2] } } loop_cnt := prm_bum - 2 Loop, %loop_cnt% { var_cnt := 2 + A_Index if ( cmd_set[ var_cnt ] != "" ) { p%A_Index% := cmd_set[ var_cnt ] } } sleep, _time flag_exe := 0 if ( prm_bum == 5 ) { IsFunc(_func) %_func%( p1, p2, p3, _time ) }else if ( prm_bum == 6 ) { IsFunc(_func) %_func%( p1, p2, p3, p4 ) }else if ( prm_bum == 7 ) { IsFunc(_func) %_func%( p1, p2, p3, p4, p5 ) }else if ( prm_bum == 8 ) { if ( _func = "exit" ) { flag := IsFunc(p1) if flag { ret := %p1%( p2, p3,p4, p5, p6 )+0 if ( ret == 2 ){ exit 3 } } }else{ IsFunc(_func) %_func%( p1, p2, p3, p4, p5, p6 ) } } } } WinWaitAndClikButton0(WinTitle,Button,WinText="") {} ControlCheck0(WinTitle,_Button,WinText="") { } ;//-------------------------------------------------- ;//////////////////////////////////// WaitForWinOrNextWin(WinTitle1,_Button,WinText1="",WinTitle2="",WinText2="") { RE_TRY5: WinWait,%WinTitle1%,%WinText1%,3 if ErrorLevel { IfWinNotExist,%WinTitle2%,%WinText2% { sleep,1000 Goto,RE_TRY5 } return 0 } else{ Sleep,500 WinActivate,%WinTitle%,%WinText% Sleep,300 ControlFocus, %_Button%,%WinTitle1%,%WinText1% Sleep,200 SetControlDelay, -1 ;MsgBox,text-%Button%:%WinTitle%:%WinText% ControlClick,%_Button%,%WinTitle1%,%WinText1%,,,NA ;Sleep,500 ;ControlClick,%Button%,%WinTitle%,%WinText% return 2 } } ControlCheck(WinTitle,_Button,WinText="") { local myvar := 0 RE_TRY_CHECK: ;WinGetText, text ,%WinTitle% ; WinGetText WinGetTitle The window found above will be used. ;MsgBox,text-%text% WinWait,%WinTitle%,%WinText%,2000000 if ErrorLevel { } else{ Sleep,500 SetControlDelay, 100 Control,Check, , %_Button%, %WinTitle%, %WinText% Sleep,500 ControlGet, OutputVar, Checked, ,%_Button%,%WinTitle%, %WinText% ;MsgBox,text-%OutputVar% if( OutputVar = 0 ) { if(myvar<5){ myvar++ Goto,RE_TRY_CHECK } } } } ;//////////////////////////////////// WinWaitForText(WinTitle,COUNT,NUM,WinText="") { local myvar=0 local lenth local pos local pos_start local pos_end local OutputVar WINWAIT_TRY: WinWait,%WinTitle%,,COUNT SetTitleMatchMode Fast ;Fast ;RegEx DetectHiddenText, Off WinGetText, text ,%WinTitle% ; WinGetText WinGetTitle The window found above will be used. ;MsgBox,text-%text% local start_char:=NUM-1 StringGetPos, pos_end, text,`r`n, L%NUM% ;MsgBox,OutputVar-%pos_end% if( start_char > 0 ){ StringGetPos,pos_start,text,`r`n, L%start_char% lenth:=pos_end-pos_start-2 pos:=pos_start+3 }else{ lenth:=pos_end pos:=1 } ;MsgBox,OutputVar-%lenth% StringMid, OutputVar, text, pos,lenth ;MsgBox,text-%text% ;MsgBox,OutputVar1-%OutputVar%-- ;MsgBox,OutputVar1-%OutputVar%-**-OutputVar2-%WinText%-- if( OutputVar = WinText ) { Sleep,1000 WinActivate,%WinTitle% }else{ Sleep,1000 if( myvar4000){ sleep, 5000 }else{ sleep, 100 } Sleep,100 WinActivate,%WinTitle%,%WinText% Sleep,100 ControlFocus, %Button%,%WinTitle%,%WinText% Sleep,100 SetControlDelay, -1 ;MsgBox,text-%Button%:%WinTitle%:%WinText% ControlClick,%Button%,%WinTitle%,%WinText%,,,NA ;Sleep,500 ;ControlClick,%Button%,%WinTitle%,%WinText% flag_exe++ WinWaitClose, %WinTitle%, %WinText%, 5000 if ErrorLevel { Goto,RE_TRY } sleep,500 } } ;------------------------------------------------------------------------------------------------ ; Get Explorer and its TreeView handle ; NUM for WinText position WinWaitAndClikButton2(WinTitle,Button,NUM,WinText="") { local myvar=0 local lenth local pos local pos_start local pos_end local OutputVar RE_TRY2: WinWait,%WinTitle%,,200 SetTitleMatchMode Fast ;Fast ;RegEx DetectHiddenText, Off WinGetText, text ,%WinTitle% ; WinGetText WinGetTitle The window found above will be used. ;MsgBox,text-%text% local start_char:=NUM-1 StringGetPos, pos_end, text,`r`n, L%NUM% ;MsgBox,OutputVar-%pos_end% if( start_char > 0 ){ StringGetPos,pos_start,text,`r`n, L%start_char% lenth:=pos_end-pos_start-2 pos:=pos_start+3 }else{ lenth:=pos_end pos:=1 } ;MsgBox,OutputVar-%lenth% StringMid, OutputVar, text, pos,lenth ;MsgBox,text-%text% ;MsgBox,OutputVar1-%OutputVar%-- ;MsgBox,OutputVar1-%OutputVar%-**-OutputVar2-%WinText%-- if( OutputVar = WinText ) { Sleep,1000 WinActivate,%WinTitle% Sleep,300 ControlFocus, %Button%,%WinTitle% Sleep,200 SetControlDelay, -1 ControlClick,%Button%,%WinTitle%,,,,NA }else{ Sleep,3000 Goto,RE_TRY2 } Sleep,2000 IfWinExist,%WinTitle% { WinGetText, text ,%WinTitle% StringGetPos, pos_end, text,`r`n, L%NUM% if( start_char > 0 ){ StringGetPos,pos_start,text,`r`n, L%start_char% lenth:=pos_end-pos_start-2 pos:=pos_start+3 }else{ lenth:=pos_end pos:=1 } ;MsgBox,OutputVar-%lenth% StringMid, OutputVar, text, pos,lenth ;MsgBox,WinTitle-%WinTitle%,WinText-%OutputVar% if( OutputVar = WinText && myvar<5){ myvar++ Goto,RE_TRY2 } } } WinClikAndWaitTime(WinTitle,Button,WinText="",Sec=5) { local myvar=0 RE_TRY3: ;WinGetText, text ,%WinTitle% ; WinGetText WinGetTitle The window found above will be used. ;MsgBox,text-%text% WinWait,%WinTitle%,%WinText%,2000000 if ErrorLevel { } else{ Sleep,500 WinActivate,%WinTitle%,%WinText% Sleep,300 ControlFocus, %Button%,%WinTitle%,%WinText% Sleep,200 SetControlDelay, -1 ;MsgBox,text-%Button%:%WinTitle%:%WinText% ControlClick,%Button%,%WinTitle%,%WinText%,,,NA ;Sleep,500 ;ControlClick,%Button%,%WinTitle%,%WinText% } Sleep,200 IfWinExist,%WinTitle%,%WinText% { ;MsgBox,WinTitle-%WinTitle%,WinText-%WinText% if(myvar<3){ myvar++ Goto,RE_TRY3 } } WinWaitClose,%WinTitle%,%WinText%,%Sec% if ErrorLevel { return 1 } else{ return 0 } }