2016-09-01 134 views
1

我有一个问题用一个简单的登录桂在AutoIt的,我真的不能找出为什么它不会打印的用户名和传递到一个文本文件我需要帮助检查脚本

下面的代码:

$gui = GuiCreate("Authenticate",120,170) 

GUICtrlCreateLabel("Username:",10,10,50,20) 
$username = GUICtrlCreateInput("",10,35,100,20) 

GUICtrlCreateLabel("Password:",10,70,50,20) 
$password = GUICtrlCreateInput("",10,95,100,20,0x0020) 

$go = GuiCtrlCreateButton("OK",10,130,50,25) 
$cancel = GuiCtrlCreateButton("Cancel",60,130,50,25) 

GUISetState() 
Do 
$msg = GUIGetMsg() 

If $msg = $go Then 

    FileWrite(@ScriptDir & '\userout.txt', $username) 
    FileWrite(@ScriptDir & '\passout.txt', $password) 
    Run("confirm.bat", "", @SW_HIDE) 

EndIf 

If $msg = $cancel Then 
Exit 
EndIf 

Until GUIGetMsg() = $cancel 
GuiDelete($gui) 

我试过使用不同的代码行,但我无法找到问题。 预先感谢

回答

0

您已忘记读出控件。在你的脚本中,你只能得到control-id的值。

$gui = GuiCreate("Authenticate",120,170) 

GUICtrlCreateLabel("Username:",10,10,50,20) 
$username = GUICtrlCreateInput("",10,35,100,20) 

GUICtrlCreateLabel("Password:",10,70,50,20) 
$password = GUICtrlCreateInput("",10,95,100,20,0x0020) 

$go = GuiCtrlCreateButton("OK",10,130,50,25) 
$cancel = GuiCtrlCreateButton("Cancel",60,130,50,25) 

GUISetState() 
Do 
$msg = GUIGetMsg() 

If $msg = $go Then 

    ; FileWrite(@ScriptDir & '\userout.txt', $username) ; wrong 
    FileWrite(@ScriptDir & '\userout.txt', GUICtrlRead($username)) ; correct 
    ; FileWrite(@ScriptDir & '\passout.txt', $password) ; wrong 
    FileWrite(@ScriptDir & '\passout.txt', GUICtrlRead($password)) ; correct 
    Run("confirm.bat", "", @SW_HIDE) 

EndIf 

If $msg = $cancel Then 
Exit 
EndIf 

Until GUIGetMsg() = $cancel 
GuiDelete($gui)