1

我正在尝试连接到 Windows 共享 (\print) 但如果我的身份验证失败,例如,错误的用户名或密码,我如何才能捕捉到该错误?问题是,在执行脚本(exe.文件)时,如果我插入错误的凭据,则错误消息来自 Autoit 程序,而不是我想要弹出的消息(上面的代码),如果身份验证存在问题。

这是我的代码示例:

在这里,我尝试使用用户名和密码连接到服务器 \print

$WshNetwork = ObjCreate("WScript.Network")
$WshNetwork.MapNetworkDrive("", "\\print", True, $username, $password)

$username 和 $password 的值是从输入框填充的。所以,在那段代码之后,我试图捕捉这样的错误:

if @error Then
    MsgBox(16, "", "Authentication error!")
EndIf

顺便说一句,我从控制台得到的错误是这个:

C:\Users\user\Desktop\test.au3 (33) : ==> The requested action with this object has failed.:
$WshNetwork.MapNetworkDrive( "","\\print",True, $username, $password)
$WshNetwork.MapNetworkDrive( "","\\print",True, $username, $password)^ ERROR

好吧,错误正在发生,但是有什么方法可以从代码中捕获错误并发送警报(Msgbox)?

4

1 回答 1

1

DriveMapAdd(...)在 AutoIt 中查看。或者尝试使用这样的东西:

$USERNAME = InputBox(...)
$PASSWORD = InputBox(...)
$DRIVEINPUTBOX = InputBox(...)
$SHARE = "\\print\foldername"
$DRIVE = $DRIVEINPUTBOX & ": "

$COMMAND = "NET USE " & $DRIVE & " " & $SHARE & " /USER:" & $USERNAME & " " & $PASSWORD & " > TEMP"

RunWait(@ComSpec & " /c " & $COMMAND)

; Read the file "TEMP"
; Choose what to do
; Delete file "TEMP"
于 2013-12-27T21:47:44.580 回答