>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\....au3"
C:\Users\....au3 (102) : ==> Error parsing function call.:
GUICtrlSendMsg($hPass, $EM_SETPASSWORDCHAR, NotNot $bPassVisible * Asc('*'), 0)
GUICtrlSendMsg($hPass, $EM_SETPASSWORDCHAR, ^ ERROR
>Exit code: 1 Time: 0.742
Beiträge von SendXP
-
-
Wiederholt vielen Dank
allerdings wirft das Script einen Fehler
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\...au3"
C:\Users....au3 (40) : ==> Error parsing function call.:
If $iMinLen < 0 OrOr $iMinLen = Default Then $iMinLen = 0
If $iMinLen < 0 ^ ERROR
>Exit code: 1 Time: 0.476 -
Super - 1000 Dank für den Support und Asche auf mein Haupt... in der Tat, das Laufwerk war schon unter einem anderen Laufwerksbuchstaben eingebunden.
Nun soll eben der Benutzername und das Passwort variablen eingegeben werden können. Oscar hat eine schönes "_Login"-Script welches ebenfalls Benutzernamen und Passwort einlesen möchte. Dabei kann dass Passwort auch noch in Klartext angezeigt werden.
Allerdings bin ich unfähig das Fenster im Codeing auf meine Belange anzupassen... und freue mich auf weitere Unterstützung
-
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\....au3"
Error: 1
Extended: 1219
>Exit code: 0 Time: 4.311 -
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\....au3"
1
>Exit code: 0 Time: 4.176 -
Bei dem Scriptaufruf sehe ich im Systray kurz das AutoIT-Symbol und dann passiert nichts weiter. Keine Meldung und kein Mounten des Laufwerks.
Der laufwerksbuchstabe X ist von Windows nicht in gebrauch und kann noch verwendet werden -
sieht nun wie folgt aus:
[autoit]
[/autoit]
; Verbindet Laufwerk X mit \\192.168.178.1\daten, wobei der Benutzer "user" mit dem Passwort "passwort" benutzt werden soll
DriveMapAdd("X:", "\\192.168.178.1\daten", 0, "user", "passwort")
ConsoleWrite(@error & @CR)und es passiert genau -nichts-
-
Leider tut es dass so nicht...
[autoit]; Verbindet Laufwerk X mit \\192.168.178.1\daten, wobei der Benutzer "user" mit dem Passwort "passwort" benutzt werden soll
[/autoit]
DriveMapAdd("X:", "\\192.168.178.1\daten", 0, "user", "passwort") -
Hallo AutoIT-Gemeinde,
in Windows kann ich ein Netzlaufwerk auch über die Kommandozeile einbinden. Der Kommandezeile kann ich auch einen Benutzernamen und ein Passwort mitgeben. Was aber nun, wenn Benutzername und Passwort weiterhin Userabhängig bleiben soll...?
Ich hätte gerne folgendes Programm, bekomme es aber alleine nicht umgesetzt
und genau hier hoffe ich auf eure Unterstützung.
1. Ein Fenster soll sich öffnen
2. Benutzername wird abgefragt
3. Passwort wird abgefragt
4. Klick auf einen Button "Verbinden" mountet das Netzlaufwerk wobei Benutzername, Passwort und Verbindung zum Netzlaufwerk dauerhaft "gespeichert" bleiben sollen (also auch nach einem Systemneustart noch verfügbar).Der Windows-Batch-Befehlt (ohne Benutzername und Passwort) lautet:
"if not exist z: net use Z: \\192.168.178.1\daten /PERSISTENT:yes"Kann hier jemand tatkräftig coden?
Vielen Dank
-
Vielen Dank!
Leider aber habt ihr mich in Teilen gedanklich abgehängt.Nun habe ich
[autoit]Run(@SystemDir&'\rundll32.exe C:\WINDOWS\system32\printui.dll,PrintUIEntry /in /if /b "KONICA MINOLTA C360 Serie" /f "D:\Druckertreiber\Kiel\KOAZ8J__.INF" /in /r "\\IP_192.168.123.99" /m "KONICA MINOLTA C360 Serie"')
[/autoit]bekomme aber immer noch die Meldung:
"Der Vorgang konnte nicht abgeschlossen werden (Fehler 0x00000705). Windows kann keinen passenden Druckertreiber finden. Wenden Sie sich an den Administrator, um einen passenden Treiber zu finden und zu installieren".
Ich komme einfach nicht weiter. Der Pfad des Treibers ist korrekt
-
Ich habe den Aufruf
[autoit]Run(@SystemDir&'\rundll32.exe C:\WINDOWS\system32\printui.dll,PrintUIEntry /if /b "KONICA MINOLTA C360 Serie" /f D:\Druckertreiber\Kiel\KOAZ8J__.INF /r "\\192.168.123.99" /m "KONICA MINOLTA C360 Serie"')
[/autoit]wie von Homelike Jester vorgeschlagen versucht zu übernehmen.
Nun erhalte ich aber die Windowsmeldung: Der Vorgang konnte nicht abgeschlossen werden (Fehler 0x00000705). Windows kann keinen passenden Druckertreiber finden. Wenden Sie sich an den Administrator, um einen passenden Treiber zu finden und zu installieren.
Die IP ist korrekt. Auch die INF-Datei kann ich in der manuellen Druckerinstallation über den TCP/IP-Port verwenden.
Hat jemand eine Idee?
-
Das Script funktioniert einwandfrei. Vielen Dank an alle Beteiligten.
Nun ruft
[autoit]Run(@SystemDir&"\rundll32.exe C:\WINDOWS\system32\printui.dll,PrintUIEntry /in /n ""\\server\Kyocera FS-C5100DN KX")
[/autoit]die Installation auf.
Inzwischen ist ein weitere Drucker hinzugekommen und dieser soll nun über die entsprechende INF-Treiberdatei auf einer festen IP installiert werden.
[autoit]Run(@SystemDir&"\rundll32.exe C:\WINDOWS\system32\printui.dll,PrintUIEntry /if /b "HPDrucker" /f C:\InfPfad\InfDatei.inf /r "Die IP des Druckers" /m "Der Neue Drucker")
[/autoit]installiert leider den Drucker "HPDrucker" nicht auf der IP "Die IP des Druckers".
Kann hier jemand bitte den korrekten Befehl posten? -
Vielen Dank an Misterspeed
Leider funktioniert es dennoch nicht.
Aktuell sieht das Script wie folgt aus:
[autoit]
[/autoit]
$sFile = @ScriptDir & "\passwort.txt" ;// Optional Pfad + Name anpassen
if not fileexists($sFile) then
$sText = InputBox("Passwort-Box", "Bitte gibt Ihr Passwort für ein und bestätigen Sie dieses mit 'OK'") ;// InputBox erstellen
FileWrite($sFile, $sText) ;// Text in Datei schreiben
else
$sText = fileread($sFile) ; auslesen der Tesxtdatei
endif
while 1
if winexists("Authentifizierung") then
ControlSetText("Authentifizierung","","[CLASS:TkChild; INSTANCE:5]",$sText) ; pw ins edit feld schreiben , infos zum edit falsch????
controlclick("Authentifizierung","","[CLASS:TkChild; INSTANCE:4]") ; ok drücken , infos zum button fehlen !!!
endif
sleep(100)
wendEin Screenshot des Fensters als Dateianhang. Der Benutzername ist der Windows-Benutzername und ist bereits, sobald das Fenster aufpoppt, eingetragen. Es gilt also nur das Feld "Passwort" zu füllen. Erst wenn im Feld Passwort ein Eintrag erfolgt, wird der Button "OK" klickbar geschaltet.
Mit "AutoIt Window Info" habe ich folgende Infos zum Button (siehe Screenshots).
Mit "AutoIt Window Info" habe ich folgende Infos zum Editfeld (siehe Screenshots).
-
[autoit]die Datei "passwort.txt" wird korrekt angelegt bzw. auch mit dem Eingabewert gefüllt.
Das Authetifizierungsfenster steht im Vordergrund wird aber nicht gefüllt.
Die Instance habe ich abgepasst:while 1
[/autoit]
if winexists("Authentifizierung") then
ControlSetText("Authentifizierung","","[CLASS:TkChild; INSTANCE:5]",$sText)
controlclick("Authentifizierung","","[CLASS:TkChild; INSTANCE:4]")
endif
sleep(100)
wend
Ich habe mir erlaubt zwei Screenshots zu dem Authetifizierungsfenster anzuhängen. Ich komme nicht weiter... -
Hallo Misterspeed,
ja genau so sollte es dann mal laufen... ich bekomm es trotz deiner Hilfe nicht hin. aktuell wird nicht einmal mehr dass Passwort eingelesen/gesetzt.
[autoit]$sFile = @ScriptDir & "\passwort.txt" ;// Optional Pfad + Name anpassen
[/autoit][autoit][/autoit][autoit]
$hFile = FileOpen($sFile, 2) ;// Datei im Schreibmodus öffnen (falls sie nicht exstiert, wird sie erstellt)$sText = InputBox("Passwort-Box", "Bitte gibt Ihr Passwort für ein und bestätigen Sie dieses mit 'OK'") ;// InputBox erstellen
[/autoit][autoit][/autoit][autoit]
FileWrite($hFile, $sText) ;// Text in Datei schreibenwhile 1
[/autoit][autoit][/autoit][autoit]
if winexists("Authentifizierung") then
ControlSetText("Authentifizierung","","[CLASS:TkChild; INSTANCE:5]","OK")
controlclick("Authentifizierung","","[CLASS:TkChild; INSTANCE:5]")
endif
sleep(100)
wendif not fileexists(@scriptdir & "\passwort.txt") then
[/autoit][autoit][/autoit][autoit]
$sText = InputBox("Passwort-Box", "Bitte gibt Ihr Passwort für ein und bestätigen Sie dieses mit 'OK'") ;// InputBox erstellen
FileWrite(@scriptdir & "\passwort.txt", $sText) ;// Text in Datei schreiben
else
$sText = fileread(@scriptdir & "\passwort.txt") ; oder meinetwegen auch filereadline, aber wenn die Datei eh nur eine Zeile hat funktioniert fileread genauso
endifSleep(800)
[/autoit]
Send("{TAB}")
Sleep(800)
Send("{ENTER}")Könnt Ihr bitte weiter unterstützen?
-
Aktuell sieht mein Script nun wie folgt aus:
[autoit]$sFile = @ScriptDir & "\passwort.txt" ;// Optional Pfad + Name anpassen
[/autoit][autoit][/autoit][autoit]
$hFile = FileOpen($sFile, 2) ;// Datei im Schreibmodus öffnen (falls sie nicht exstiert, wird sie erstellt)$sText = InputBox("Passwort-Box", "Bitte gibt Ihr Passwort für ein und bestätigen Sie dieses mit 'OK'") ;// InputBox erstellen
[/autoit][autoit][/autoit][autoit]
FileWrite($hFile, $sText) ;// Text in Datei schreibenWinWait("Authentifizierung","")
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
If Not WinActive("Authentifizierung","") Then WinActivate("Authentifizierung","")
WinWaitActive("Authentifizierung","")
Sleep(100)Local $file = FileOpen("passwort.txt", 0)
[/autoit][autoit][/autoit][autoit]; Prüfen, ob Datei eingelesen wurde
[/autoit][autoit][/autoit][autoit]
If $file = -1 Then
MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
Exit
EndIf; Zeilen des Textes einlesen bis EOF
[/autoit][autoit][/autoit][autoit]
While 1
Local $line = FileReadLine($file)
If @error = -1 Then ExitLoop
;MsgBox(0, "Zeile gelesen:", $line)
Send($line)
WEndFileClose($file)
[/autoit][autoit][/autoit][autoit]Sleep(800)
[/autoit]
Send("{TAB}")
Sleep(800)
Send("{ENTER}")
Run("AutFenster.exe", "","")An dieser Stelle sei gesagt, dass ein Durchlauf auch fast funktioniert.
Ich starte das Script und werde zur Eingabe des Passwortes aufgefordert. Dieses Passwort z.B. Schiff#6 wir auch korrekt in der Datei "passwort.txt" gespeichert. Nun poppt irgendwann mein Authentifizierungsfenster auf und es wird vermeintlich dass Passwort aus der passwort.txt in das Fenster geschrieben. Leider stellt sich im Test heraus, dass das Passwort nicht korrekt im Authentifizierungsfenster ankommt. Ich vermute dass das # nicht übergeben wird. Lasse ich das Passwort über ;MsgBox(0, "Zeile gelesen:", $line) ausgeben, ist es nach Anzeige korrekt.
Dann allerdings wird immer wieder die Passworteingabe angezeigt. Diese soll natürlich nur einmal eben ganz zu Anfang kommen.
Ergo gilt es
1. eine Schleife so zu bauen, dass eben die Passworteingabe nur einmal, beim Aufruf des kompilierten Script (der exe) kommt
2. ein beliebiges Passwort korrekt aus der Datei passwort.txt in das Authentifizierungsfenster zu übergeben
3. eine Schleife zu haben, die immer prüft, ob ggf. das Authentifizierungsfenster wieder da ist und dann eben wieder das Passwort aus der Datei passwort.txt entsprechend einfügt.FürHilfe, Anpassungen oder Ergänzungen am Script wäre ich sehr dankbar.
-
nun sieht der Quellcode so aus
[autoit]...
[/autoit][autoit][/autoit][autoit]
; Zeilen des Textes einlesen bis EOF
While 1
Local $line = FileReadLine($file)
If @error = -1 Then ExitLoop
;MsgBox(0, "Zeile gelesen:", $line)
WEndFileClose($file)
[/autoit][autoit][/autoit][autoit]Sleep(400)
[/autoit]
Send("{TAB}")
Sleep(100)
Send($line)
Send("{ENTER}")Also send($line) ist eingebaut.
Dennoch wird nichts an das Autentifizierungsfenster übergeben. Schade! -
Ich blicke es nicht
Nun sieht mein Script wie folgt aus:
[autoit]$sFile = @ScriptDir & "\passwort.txt" ;// Optional Pfad + Name anpassen
[/autoit][autoit][/autoit][autoit]
$hFile = FileOpen($sFile, 2) ;// Datei im Schreibmodus öffnen (falls sie nicht exstiert, wird sie erstellt)$sText = InputBox("Passwort-Box", "Bitte gibt Ihr Passwort für ein und bestätigen Sie dieses mit 'OK'") ;// InputBox erstellen
[/autoit][autoit][/autoit][autoit]
FileWrite($hFile, $sText) ;// Text in Datei schreibenWinWait("Authentifizierung","")
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
If Not WinActive("Authentifizierung","") Then WinActivate("Authentifizierung","")
WinWaitActive("Authentifizierung","")
Sleep(100)Local $file = FileOpen("passwort.txt", 0)
[/autoit][autoit][/autoit][autoit]; Prüfen, ob Datei eingelesen wurde
[/autoit][autoit][/autoit][autoit]
If $file = -1 Then
MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
Exit
EndIf; Zeilen des Textes einlesen bis EOF
[/autoit][autoit][/autoit][autoit]
While 1
Local $line = FileReadLine($file)
If @error = -1 Then ExitLoop
;MsgBox(0, "Zeile gelesen:", $line)
WEndFileClose($file)
[/autoit][autoit][/autoit][autoit]Sleep(400)
[/autoit]
Send("{TAB}")
Sleep(100)
Send("{ENTER}")Dort wo ;MsgBox(0, Zeile gelesen: steht wird, wenn ich die Zeile nicht auskommentiere ein Fenster angezeigt, welche mir auch das Passwort aus der Datei "Passwort.txt" anzeigt. Nur soll mir dass Passwort nicht angezeigt werden, sondern in mein Fesnter mit dem Titel "Authentifizierung" kopiert/eingetragen werden.
Wo und wie??? Ich sehe den Wald vor lauter Bäumen nicht mehr
Vielen Dank für die Unterstützung! -
Das Script soll, nur nicht auch darauf kurz einzugehen, keinen Windows, sondern ein Programmlogin durchführen. Im Authentifizierungsfenster steht schon immer der Windows-Loginname drin. Dasheißt, also nur dass Passwort muss noch über AutoIT eingepflegt werden.
Was funktioniert mit dem Script am Anfang des Threads:
1. Es erscheint ein Fenster, welches nach dem Passwort fragt.
2. Das Passwort kann eingegeben werden
3. Das Passwort wird korrekt in der Datei "passwort.txt" hinterlegtWas funktioniert nicht:
1. im Script Zeile 13 muss nun ja irgendwie der Eintrag aus der Datei "passwort.txt" ausgelesen und in das dafür vorgesehene Editfeld kopiert/eingetragen werden
--> wie ist das zu programmieren?Wo bin ich mir nicht sicher:
1. bekommt das Authentifizierungsfenster automatisch den Focus wenn es auftaucht?
2. läuft das AutoIT-Script auch dann weiter, wenn das Passwort aus der Datei "passwort.txt" einmal eingetragen wurde um den Vorgang später erneut zu durchlaufen? -
Danke für die Anmerkung!
Der Script soll allerdings derzeit nur unter Windows XP - also einem System OHNE Benutzerkontensteuerung laufen