2.10.2009

autoit - 讀取密碼再填入文字框

基於有不少人對這項議題的方法似乎很有興趣
因此,針對此寫了一小段程式,並附上解說
在執行程式前,請先看完下面的說明再動作
才不會執行無效(程式下載)

;==================================
;從檔案unit.txt檔中讀出密碼、帳號
;再填入視窗中,某一控制項
;==================================

;讀UNIT.txt中的帳號密碼,如果沒有讀取成功,就離開程式
$file = FileOpen("UNIT.txt", 0)
; Check if file opened for reading OK
If $file = -1 Then
 MsgBox(0, "Error", "Unable to open file.")
 Exit
EndIf

;讀出檔案中的資訊,若出錯,則結束程式.
$user_id = FileReadLine($file) ;讀取帳號
$user_pw = FileReadLine($file) ;讀取密碼
If @error = -1 Then
 FileClose($file)
 Exit
EndIf

WinActivate("本機磁碟 (D:)") ;把title="本機磁碟 (D:)"的視窗叫出來
ControlFocus("本機磁碟 (D:)", "", "Edit1") ;移動游標到Editl的元件上
Send($user_id & $user_pw);送出帳號、密碼

FileClose($file)

----
(1) 在程式要開始執行前要先打開一個"本機磁碟 (D:)"的視窗,如下圖
(2) 用autoit所附的工具Au3Info.exe來抓出想要填入的欄位代號,如下所示,即為圖中的CLASSNN,將其填入第三個欄位,其它欄位的填法查autoit的說明應該就很清楚了

(3)若填好後,就要按Enter鍵,那就把原來的程式改成:Send($user_id & $user_pw & "{ENTER})
(4)但是有時候有的程式是沒辨法用鍵盤的Enter鍵的,這時候就使用ControlClick來按下「確定」按鈕。

至於之前有人問過用


ControlSetText("JIHSUN HTS","[7001]","TStockEdit2","$file" )

為何不行?
這是因為最後面的參數是個變數,所以應該改成

ControlSetText("JIHSUN HTS","[7001]","TStockEdit2",$file )

我想就可以動了吧:)

沒有留言: