Ich mach den Thread zu, mach für das andere am besten einen neuen auf.
peethebee
Ich mach den Thread zu, mach für das andere am besten einen neuen auf.
peethebee
Hi!
Bitte, gern geschehen. Habe ja mal wieder einen von zwei "Punkten" gemacht. Wir sind hier das einzige Forum, das ich kenne, in dem man sich um Antworten streitet
Aber euch kann es ja nur Recht sein...
Schönen Abend noch,
peethebee
Hi!
Du darfst nicht die ID mit dem Wert überschreiben...
Gefixte Version gleich.
Also:
#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit];GUI Anfang
GUICreate("Password",200,250)
;Beginn der Eingabemaske
GUICtrlCreateLabel("User-ID",10,30)
$userID_id = GUICtrlCreateInput("userID",100,30,70,20)
GUICtrlCreateLabel("Password",10,50)
$newPWD_id = GUICtrlCreateInput("password",100,50,70,20)
GUICtrlSetState(-1,$GUI_CHECKED)
$setbutton = GUICtrlCreateButton ("Set",30,150,70,20)
GUICtrlSetState(-1,$GUI_FOCUS)
$cancelbutton = GUICtrlCreateButton ("Cancel",110,150,70,20)
if (@UserName <> "Johannes") and (@UserName <> "name2") and (@UserName <> "name3") Then
MsgBox(48,"Sorry :-)", "This Tool ist not for you! (" & @UserName & ";)")
GUIDelete()
Exit
Else
GUISetState ()
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton Then ExitLoop
If $msg = $setbutton Then
RunAsSet("accountoperator", "Domäne", "Kennwort",2)
[/autoit] [autoit][/autoit] [autoit]$userID=GUICtrlRead($userID_id)
$newPWD=GUICtrlRead($newPWD_id)
MsgBox(0,"Sie haben eingegeben" , "UserID: " & $userID & " newPWD: " & $newPWD)
RunWait(@COMSPEC & " /c dsquery user -samid " & $userID & ">userDN.txt","",@SW_HIDE)
$file = FileOpen("userDN.txt", 0)
$line = FileReadLine($file)
$userDN = $line
FileClose($file)
FileDelete("userDN.txt")
If $userDN <> "" Then
$tempVAR1 = ("dsmod user "& $userDN)
$changebefehl= ($tempVAR1 & " -pwd " & $newPWD)
RunWait(@COMSPEC & " /c echo " & $changebefehl &">befehl.cmd","",@SW_HIDE)
RunWait(@COMSPEC & " /c befehl.cmd >report.log","",@SW_HIDE)
FileDelete("befehl.cmd")
Else
MsgBox(0, "Error", "Wrong UserID (" &$userID & ";)")
EndIf
EndIf
WEnd
EndIf
GUIDelete()
Exit
Getestet.
peethebee
Hallo!
Das erste ist gefixt, was ist das genaue Problem mit dem GUICtrlRead? Bei mir hat es in einem ersten Test geklappt (korrekt angezeigt in MsgBox).
#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit];GUI Anfang
GUICreate("Password",200,250)
;Beginn der Eingabemaske
GUICtrlCreateLabel("User-ID",10,30)
$userID = GUICtrlCreateInput("userID",100,30,70,20)
GUICtrlCreateLabel("Password",10,50)
$newPWD = GUICtrlCreateInput("password",100,50,70,20)
GUICtrlSetState(-1,$GUI_CHECKED)
$setbutton = GUICtrlCreateButton ("Set",30,150,70,20)
GUICtrlSetState(-1,$GUI_FOCUS)
$cancelbutton = GUICtrlCreateButton ("Cancel",110,150,70,20)
if (@UserName <> "Johannes") and (@UserName <> "name2") and (@UserName <> "name3") Then
MsgBox(48,"Sorry :-)", "This Tool ist not for you! (" & @UserName & ";)")
GUIDelete()
Exit
Else
GUISetState ()
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton Then ExitLoop
If $msg = $setbutton Then
RunAsSet("accountoperator", "Domäne", "Kennwort",2)
[/autoit] [autoit][/autoit] [autoit]$userID=GUICtrlRead($userID)
$newPWD=GUICtrlRead($newPWD)
MsgBox(0,"Sie haben eingegeben" , "UserID: " & $userID & " newPWD: " & $newPWD)
RunWait(@COMSPEC & " /c dsquery user -samid " & $userID & ">userDN.txt","",@SW_HIDE)
$file = FileOpen("userDN.txt", 0)
$line = FileReadLine($file)
$userDN = $line
FileClose($file)
FileDelete("userDN.txt")
If $userDN <> "" Then
$tempVAR1 = ("dsmod user "& $userDN)
$changebefehl= ($tempVAR1 & " -pwd " & $newPWD)
RunWait(@COMSPEC & " /c echo " & $changebefehl &">befehl.cmd","",@SW_HIDE)
RunWait(@COMSPEC & " /c befehl.cmd >report.log","",@SW_HIDE)
FileDelete("befehl.cmd")
Else
MsgBox(0, "Error", "Wrong UserID (" &$userID & ";)")
EndIf
EndIf
WEnd
EndIf
GUIDelete()
Exit
@Zen: Der Boole'sche Operator muss "and" sein, nicht "or". In deinem Beispiel würde niemand ausgeschlossen werden. Wenn du "or" nimmst, müsste man "=" prüfen, nicht "<>"...
peethebee
Edit: 1:0 für Zen
Hallo!
Habe gerade nicht viel Zeit, daher nur ganz kurz:
DOS-Befehl "ipconifg /all", dann auslesen mit StdOutRead, danach StringRegExp.
Müsste im Forum ein derartiges Skript von CoDeX2k geben.
peethebee
Hallo!
Das ist doch mal was
Hast du das (Button in einem Fenster klicken) schon mal versucht?
Evtl. kannst du das Fenster auch mit WinClose oder WinKill schließen, was etwas rabiater ist. Wenn die Installation schon fertig ist, könnte man als letzten Ausweg auch ProcessClose machen.
peethebee
Wozu brauchst du das denn??
peethebee
Hallo!
Vielen Dank für das Lob, Dr.Galvany. Genau so soll es sein: Wem von uns geholfen wird, sollte im Idealfall in anderen Fällen oder später auch in der Lage sein, selbst anderen zu helfen. Macht Freude, das zu sehen.
Und natürlich ist es schön zu sehen, dass wir hier inzwischen eine wirkliche Instanz in Sachen AutoIt geworden sind
peethebee
Hi!
Mein "magischer Dreisatz" ist immer: WinWait, WinActivate, WinWaitAcive, aber kann natürlich sein, dass sich der Acronis-Installer da einfach wehrt...
Auch dir ein gutes neues Jahr mit AutoIt-Erfolgen *g*.
peethebee
Mal aus dem Kopf versucht:
StringRegExp(..., ' \"(.)*\" ') (Leerzeichen nur, damit man es sieht, müssen wohl beide weg)
@zip: es gibt im englischen Forum ein paar Ansätze über Fremd-DLLs, das ist alles etwas kopmliziert, so wie ich das sehe, aber wenn du es wirklich brauchst, dann geht es
peethebee
Schritt blau ist kein Problem, da nehmen wir dann ControlGetText.
Für die davor mache ich mir noch mal kurz Gedanken.
Edit:
_GUICtrlListViewFindItem - das könnte interessant sein, in Verbindung mit ControlGetHandle. Evtl. müsste man noch eine Funktion Handle -> ID suchen im englischen Forum.
Sollte das FindItem klappen, könnte man sich den Shritt blau wohl komplett sparen, da man die Daten ja direkt bekäme.
peethebee
Hi!
Aller Anfang ist schwer - das ist halt auch ein Skript, das nicht einfach ist für den Anfang. Aber wir haben alle mal klein angefangen.
Deine Informationsquelle ist das Window Info Tool (Au3Info.exe im AutoIt-Installationsverzeichnis). Damit fährst du über das Control (es wird umrahmt), das die begehrten Daten enthält. Dann hältst du mit Strg+Alt+F die Anzeige an. Aus den Daten (Window title, Window text, ControlID) kannst du dann in AutoIt den ControlText mit ControlGetText lesen und mal schauen, ob du die Daten so erreichst.
peethebee
Was liefert denn ControlGetText?
peethebee
p.s. hattest eine PN von mir bekommen, deine Mailadresse scheint nämlich nicht zu stimmen...
SHA1 ist meines Wissens sicherer als MD5, aber die beste Sicherheit sind immer noch lange und komplexe Passwörter - meinen Hash wird huggy jedenfalls in keiner Rainbow finden
peethebee
Es gibt inzwischen Tricks, die beispielsweise MD5 zum Teil unsicher machen, d.h. man kann mit relativ geringem, aber immer noch sehr großem Aufwand Tabellen generieren (Rainbow tables), aus denen sich dann das Passwort auslesen lässt. Lange Passwörter mit Sonderzeichen sind aber immer noch sicher genug.
peethebee
GUI in Bildschirmgröße, schwarzer Hintergrund, sollte passen *g*.
peethebee
Auf deinem Desktop werden mehr Farben verwendet, als du vielleicht denkst
Aber im Ernst, evtl. sind die Parameter falsch oder so, versuch, den Bereich so klein wie möglich zu wählen und die Farbe genau anzugeben. Poste doch mal deinen momentanen Code, vielleicht erkennen wir das Problem.
peethebee
Hallo!
Das Auslesen sollte nicht das Problem sein. Es könnte mit ControlGetText, WinGetText oder über Send-Kommandos gehen.
Danach hilft dir die IE.au3 weiter, mit der du eine Webseite im InternetExplorer fernsteuern kannst. Wenn du dir die umfangreichen Beispiele aus der aktuellen Version 3.2.2.0 anschaust, könntest du damit schon ein ganzes Stück weiterkommen. Ich weiß natürlich nicht, wie gut du dich auskennst, wenn etwas unklar ist, einfach noch mal fragen.
Es ist also definitiv in AutoIt möglich!
Viel Erfolg,
peethebee
Wie merke ich, das checkBox1 checked/unchecked ist?
Das dann endgültig mit ControlCommand. Der Vorteil des Setzens über ControlCommand ist, dass man den Endstatus direkt unter Kontrolle hat.
Bei ControlClick togglet man nur, muss danach also doch wieder checken...
peethebee
Hallo!
Schau mal unter ControlCommand in der aktuellen Hilfe nach, das sollte dir helfen.
peethebee