1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. TheDude

Beiträge von TheDude

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • TheDude
    • 14. Juni 2010 um 11:17

    Hallo Water,

    vielen Dank für Deine Antwort.

    AD_Open() funktioniert auch soweit, wenn ich alle Parameter mitgebe. Die Werte hatte ich so ermittelt, wie Du auch vorgeschlagen hat. Das Problem liegt leider immer noch beim Abarbeiten der Funktion AD_CreateComputer(). Rechnername, Benutzername (mal mit, mal ohne Domäne for dem Account), sowie OU sind "eigentlich" ok. Wenn ich den Rechner mit diesen Parametern und NetDom.exe ins AD bringe, dann klappt dies auch wie erwartet. Hast Du evtl. hierfür noch einen Tipp für mich.

    AD_JoinDomain kommt dann als nächstes ... :rolleyes:

    BTW: Deine UDF ist klasse. Der Aufbau der Funktionen ist auch absolut gelungen und vollkommen nachvollziehbar. Insofern keine Panik, verwirrt hat mich das jetzt nicht ... :thumbup:

    Viele Grüße & einen schönen Montag
    TheDude

  • Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

    • TheDude
    • 11. Juni 2010 um 11:29

    Hallo Zusammen,

    erst einmal vielen Dank für die klasse UDF.

    Mein Ziel ist es, über die UDF einen Rechner in das AD aufzunehmen. Dabei bin ich leider auf Schwierigkeiten gestossen.

    Eine Frage zu AD_Open: Ein Rechner, der ins AD soll, hat ja noch keinerlei Login-Informationen des AD sondern lediglich einen User mit entsprechenden Rechten (Admin). Nun habe ich versucht, mich mit AD_Open(Username, Passwort, Domain) an der Domäne anzumelden. Dies erzeugte einen Fehler 6 der besagt, daß ich einen DC sowie ConfigParam angeben soll. DC ist mir ja soweit noch klar, aber was ist mit ConfigParam gemeint? Wenn ich nur Benutzername und Passwort angebe, dann bekomme ich einen Fehler in @Error "0" und in @Extended auch "0" ...

    Eine Frage zu AD_CreateComputer: Hier kann ich machen was ich will. Das AD_Open ist erfolgreich, leider liefert mit AD_CreateComputer in @Error und @Extension jeweils nur den Wert "0" zurück. Was mache ich hier falsch? Der Rechnername ist der, den ich mit @ComputerName ermittle, der Anmeldename ist identisch mit dem bei AD_Open. Und die OU ist auch korrekt. Wenn ich den Rechner mit meinen Anmeldedaten manuell ins AD aufnehme, dann klappt alles. Auch mit dem NetDom.exe und den Anmeldedaten bzw. der OU funktioniert es. Insofern liegt es zumindest einmal nicht an fehlenden Rechten im AD, irgendetwas habe ich hier wohl falsch gesetzt. Ich bin mit meiner "Weisheit" ein wenig am Ende ... :S

    In dem Zusammenhang (weil - soweit komme ich ja gar nicht): Gibt es etwas, daß ich bei AD_JoinDomain beachten müßte?

    Vorab vielen Dank für eure Hilfe,
    Grüße

    TheDude

  • MD5 Checksumme berechnen für Dateien

    • TheDude
    • 26. Januar 2010 um 11:16

    Jau, danke, habe es soeben entdeckt. Hach - welche Freude! Habe Stunden mit Suchen verbracht ... und es war (mal wieder) so einfach! :rolleyes:

    Nochmals vielen vielen Dank,
    Grüße

    Thomas

  • MD5 Checksumme berechnen für Dateien

    • TheDude
    • 26. Januar 2010 um 11:10

    Hallo Oscar,

    ... oh ... oh ... ;(

    Wieso - habe ich es nicht gesehen??? Habe die deutsche Hilfe-Datei nach "MD5" durchsucht, kein Erfolg ...

    Wo finde ich denn die Doku dazu?

    Edit: **** Habe sie gerade in der englischen Hilfe gefunden ***

    Danke & Grüße
    Thomas

  • MD5 Checksumme berechnen für Dateien

    • TheDude
    • 26. Januar 2010 um 10:54

    Hallo Zusammen,

    hat jemand von euch bereits einmal eine Funktion geschrieben zum Berechnen von MD5-Prüfsummen von Dateien? Ich habe auf Wikipedia zwar einen Artikel mit Pseudocode gefunden, bekomme die Funktion aber leider nicht umgesetzt. ;(

    Vorab vielen Dank für eure Hilfe,
    viele Grüße

    Thomas

  • Verhindern, daß das Script zweimal zur gleichen Zeit läuft

    • TheDude
    • 20. Januar 2010 um 11:47

    Hallo Zusammen,

    wie kann ich abfragen, ob ein Script bereits abläuft um zu verhindern, daß zweimal gestartet wird und sie sich in die Quere kommen? Über den Taskmanager scheint es nicht sichtbar zu sein, auch sehe ich dort nur eine Instanz des Interpreters.

    Hat jemand von euch hierzu evtl. einen Tipp?

    Vorab vielen Dank,
    viele Grüße

    Thomas

  • Wie TrayBar refreshen bei aktivem Bildschirmschoner

    • TheDude
    • 19. Januar 2010 um 10:42

    Hallo Zusammen,

    ... mit nachfolgender Funktion kann man die TrayBar refreshen. Das Klappt auch absolut prima ...

    Code
    ; ===================================================================
    ; _RefreshSystemTray($nDealy = 1000)
    ;
    ; Removes any dead icons from the notification area.
    ; Parameters:
    ;   $nDelay - IN/OPTIONAL - The delay to wait for the notification area to expand with Windows XP's
    ;   	"Hide Inactive Icons" feature (In milliseconds).
    ; Returns:
    ;   Sets @error on failure:
    ;   	1 - Tray couldn't be found.
    ;   	2 - DllCall error.
    ; ===================================================================
    Func _RefreshSystemTray($nDelay)
    ; Save Opt settings
    	Local $oldMatchMode = Opt("WinTitleMatchMode", 4)
    	Local $oldChildMode = Opt("WinSearchChildren", 1)
    	Local $error = 0
    	Do; Pseudo loop
        	Local $hWnd = WinGetHandle("classname=TrayNotifyWnd")
        	If @error Then
            	$error = 1
            	ExitLoop
        	EndIf
    
    
        	Local $hControl = ControlGetHandle($hWnd, "", "Button1")
    
    	; We're on XP and the Hide Inactive Icons button is there, so expand it
        	If $hControl <> "" And ControlCommand($hWnd, "", $hControl, "IsVisible") Then 
            	ControlClick($hWnd, "", $hControl)
            	Sleep($nDelay)
        	EndIf
    
        	Local $posStart = MouseGetPos()
        	Local $posWin = WinGetPos($hWnd)	
    
        	Local $y = $posWin[1]
        	While $y < $posWin[3] + $posWin[1]
            	Local $x = $posWin[0] 
            	While $x < $posWin[2] + $posWin[0]
                	DllCall("user32.dll", "int", "SetCursorPos", "int", $x, "int", $y)
                	If @error Then
                    	$error = 2
                    	ExitLoop 3; Jump out of While/While/Do
                	EndIf
                	$x = $x + 8
            	WEnd
            	$y = $y + 8
        	WEnd
        	DllCall("user32.dll", "int", "SetCursorPos", "int", $posStart[0], "int", $posStart[1])
    	; We're on XP so we need to hide the inactive icons again.
        	If $hControl <> "" And ControlCommand($hWnd, "", $hControl, "IsVisible") Then 
            	ControlClick($hWnd, "", $hControl)
        	EndIf
    	Until 1
    
    ; Restore Opt settings
    	Opt("WinTitleMatchMode", $oldMatchMode)
    	Opt("WinSearchChildren", $oldChildMode)
    	SetError($error)
    EndFunc; _RefreshSystemTray()
    Alles anzeigen

    ... nur leider funktioniert es nicht, wenn der Bildschirmschoner aktiv ist. Hat jemand von euch evtl. eine Idee, wie man das Refreshen der TrayBar auch bei aktivem Bildschirmschoner erreichen kann? :S

    Vorab vielen Dank,
    Grüße

    Thomas

  • Funktion SEND und Bildschirmschoner

    • TheDude
    • 15. Januar 2010 um 07:15

    Hallo Zusammen,

    Zitat von M☻x

    send("{ALTDOWN}")
    send("{CTRLDOWN}")
    send("{DEL}")
    send("{ALTUP}")
    send("{CTRLUP}")

    ... hatte ich auch probiert, klappt leider auch nicht. ;(

    Aber egal - es ist vollbracht dank eurem Tipp mit dem ControlSend:

    Code
    ControlSend("Anmeldung","","[CLASS:Edit; INSTANCE:1]","Benutzername")
     ControlSend("Anmeldung","","[CLASS:Edit; INSTANCE:2]","Passwort")
     ControlClick("Anmeldung","","[CLASS:Button; INSTANCE:1]")

    Nochmals vielen vielen Dank!

    Grüße
    Thomas

  • Funktion SEND und Bildschirmschoner

    • TheDude
    • 14. Januar 2010 um 12:33

    Hallo Zusammen,

    ... kein Thema, in meinem Original-Script steht es mit den "" drinne - ging dennoch nicht. Habe gegoogelt wie ein Weltmeister, aber es scheint definitiv nicht möglich zu sein, den CTRL-ALT-DEL per "Software-Keyboard" zu senden.

    Es wäre aber auch egal - wenn das mit den ControlSend funktioniert. Leider kann ich es heute Nachmittag testen, werde mich dann aber wieder melden! :P

    Noch eine Frage wegen der Control-ID, bitte: Ist die denn immer gleich oder ändert die sich, wenn ich das Programm oder den Rechner neu gestartet habe (sorry, bin da wirklich ein Newbie :S )?

    Danke euch!

    Grüße
    Thomas

  • Funktion SEND und Bildschirmschoner

    • TheDude
    • 13. Januar 2010 um 16:25

    Grmpf - habe es probiert mit Send(^!{DEL}) ... :wacko:

  • Funktion SEND und Bildschirmschoner

    • TheDude
    • 13. Januar 2010 um 16:21

    Hallo Jonathan,

    Send(^!{Esc})

    ... habe ich probiert, leider ohne Erfolg. :S

    Grüße
    Thomas

  • Funktion SEND und Bildschirmschoner

    • TheDude
    • 13. Januar 2010 um 16:20

    Hallo Zusammen,

    ... also - die Informationen zu den Funktionen klingen recht gut. Nur wie bekomme ich die Control-ID heraus? Ist mit Control-ID die "ID" gemeint, die ich mit dem Tool AU3INFO.EXE unter dem Tab "Control" angezeigt bekomme? Dann wäre es ja wirklich einfach ... :thumbup:

    Nochmals danke,
    Grüße

    Thomas

  • Funktion SEND und Bildschirmschoner

    • TheDude
    • 13. Januar 2010 um 16:06

    Hallo Jonathan,

    Der Rechner ist im AD und die Bildschirmschoner-Einstellungen sind per Policy gesetzt. Um den Bildschirmschoner zu deaktivieren bedarf es CTRL-ALT-DEL, was ich nicht senden kann. Daher meine Frage.

    Zur Zeit benutze ich folgendes um die Daten zu senden:


    Code
    WinActivate("Anmeldung")
     ControlFocus("Anmeldung", "", "Edit1")
     Sleep(1000)
     Send("Username")
     Send("{TAB}")
     Send("Password")
     Send("{ENTER}")

    Ich werde mich aber, wie vorgeschlagen, mit den Control-Funktionen auseinandersetzen. Klingt gut und könnte des Rätsels Lösung sein. :P Mal sehen, was ich stricken kann.

    Viele Grüße
    Thomas

  • Funktion SEND und Bildschirmschoner

    • TheDude
    • 13. Januar 2010 um 15:42

    Hallo Zusammen,

    habt ihr vielleicht einen Trick wie man mittels SEND Tastendrücke an einen Dialog senden kann auch wenn der Bildschirmschoner aktiv ist?

    Konkret habe ich das Problem, daß ich das Script ausführen kann und auch das entsprechende Programm startet. Nur wenn der Logindialog erscheint, dann funktioniert das Senden von Benutzername und Passwort nicht. Wenn der Bildschirmschoner nicht aktiv ist, dann klappt es prima.

    Vielen Dank für eure Hilfe,
    Grüße

    Thomas

  • Mit AutoIt den Systemstart loggen bis ein bestimmter Prozess beendet wurde.

    • TheDude
    • 25. November 2009 um 13:45

    Hallo Zusammen,

    folgendes Script bekomme ich einfach nicht hin und würde euch bitten, mir mit ein paar Tipps unter die Arme zu greifen. Das Script soll folgendes durchführen können:

    1. Mit Windows starten bevor sich der Anwender über das Logon am System (WinXP) anmeldet
    2. Das Script soll erkennen, daß das Fenster "Windows Anmeldung" erscheint
    3. Es sollte auch erkennen, wenn der Dialog "Willkommen bei Windows" erscheint, der mit Strg-Alt-Entf zu bestätigen ist
    4. Der Username des sich anmeldenden Benutzers soll über die Variable @UserName zu ermitteln sein

    Hier das Script, was ich bisher habe:

    Code
    Dim $LogFileHandle = 0 
    Dim $TimerStart = 0 
    Dim $VergangeneZeit = 0 
    Dim $PID = 0 
    Dim $UserName = "" 
    Dim $Willkommen = 0 
    $TimerStart = TimerInit() 
    $UserName = EnvGet("USERNAME") 
    $LogFileHandle = FileOpen("c:\systemstart.txt",10) 
    FileWriteLine($LogFileHandle,@HOUR & ":" & @MIN & ":" & @SEC) 
    FileWriteLine($LogFileHandle,"Starte nun den Messvorgang fuer den Systemstart ...") 
    FileWriteLine($LogFileHandle,"Kontrolle Benutzername: " & $UserName) 
    FileClose($LogFileHandle) 
    Do 
    $Willkommen = WinExists("Willkommen bei Windows") 
    If $Willkommen = 0 Then $Willkommen = WinExists("Windows-Anmeldung") 
    
    
    If $Willkommen > 0 Then 
    $LogFileHandle = FileOpen("c:\systemstart.txt",1) 
    FileWriteLine($LogFileHandle,@HOUR & ":" & @MIN & ":" & @SEC) 
    FileWriteLine($LogFileHandle,"Begruessungsbildschirm gefunden, warte auf Login ...") 
    
    
    If WinWait("Windows-Anmeldung",300) = 0 Then 
    FileWriteLine($LogFileHandle,@HOUR & ":" & @MIN & ":" & @SEC) 
    FileWriteLine($LogFileHandle,"TimeOut (5 Min.) beim Suchen des Anmeldedialogs ...") 
    FileClose($LogFileHandle) 
    ExitLoop 
    EndIf 
    FileWriteLine($LogFileHandle,@HOUR & ":" & @MIN & ":" & @SEC) 
    FileWriteLine($LogFileHandle,"Logon-Dialog aufgerufen, warte auf Anmeldung ...") 
    FileClose($LogFileHandle) 
    EndIf 
    
    
    ; 3Sekunden warten ... 
    Sleep(3000) 
    
    
    $VergangeneZeit = TimerDiff($TimerStart) / 1000 
    If $VergangeneZeit > 360 Then 
    $LogFileHandle = FileOpen("c:\systemstart.txt",1) 
    FileWriteLine($LogFileHandle,@HOUR & ":" & @MIN & ":" & @SEC) 
    FileWriteLine($LogFileHandle,"TimeOut (6 Min.) beim Suchen des Willkommensbildschirms ...") 
    FileClose($LogFileHandle) 
    ExitLoop 
    EndIf 
    
    
    Until $UserName <> EnvGet("USERNAME") 
    $UserName = EnvGet("USERNAME") 
    $LogFileHandle = FileOpen("c:\systemstart.txt",1) 
    FileWriteLine($LogFileHandle,@HOUR & ":" & @MIN & ":" & @SEC) 
    FileWriteLine($LogFileHandle,"Angemeldet mit Account: " & $UserName) 
    Sleep(5000) 
    FileClose($LogFileHandle) 
    If @LogonDomain <> "Domaene" Then 
    $LogFileHandle = FileOpen("c:\systemstart.txt",1) 
    FileWriteLine($LogFileHandle,@HOUR & ":" & @MIN & ":" & @SEC) 
    FileWriteLine($LogFileHandle,"Anmeldung erfolgte nicht an FEDMOG ...") 
    FileClose($LogFileHandle) 
    EndIf 
    $LogFileHandle = FileOpen("c:\systemstart.txt",1) 
    FileWriteLine($LogFileHandle,@HOUR & ":" & @MIN & ":" & @SEC) 
    FileWriteLine($LogFileHandle,"Nachfolgend gesetzte Umgebungsinformationen:") 
    FileWriteLine($LogFileHandle,"Username: " & @UserName) 
    FileWriteLine($LogFileHandle,"Computername: " & @ComputerName) 
    FileWriteLine($LogFileHandle,"Logon DNS Domain: " & @LogonDNSDomain) 
    FileWriteLine($LogFileHandle,"Logon Domain: " & @LogonDomain) 
    FileWriteLine($LogFileHandle,"Logon Server: " & @LogonServer) 
    FileWriteLine($LogFileHandle,"OS-Version: " & @OSVersion) 
    FileWriteLine($LogFileHandle,"SP: " & @OSServicePack) 
    FileWriteLine($LogFileHandle,"Sprache: " & @OSLang) 
    FileWriteLine($LogFileHandle,"IP-Adresse 1: " & @IPAddress1) 
    FileWriteLine($LogFileHandle,"IP-Adresse 2: " & @IPAddress2) 
    FileWriteLine($LogFileHandle,"IP-Adresse 3: " & @IPAddress3) 
    FileClose($LogFileHandle) 
    $LogFileHandle = FileOpen("c:\systemstart.txt",1) 
    ProcessWait("WKix32.EXE",900) 
    If ProcessExists("WKix32.EXE") = 0 Then 
    FileWriteLine($LogFileHandle,@HOUR & ":" & @MIN & ":" & @SEC) 
    FileWriteLine($LogFileHandle,"KIX wurde nach 15 Minuten nicht gefunden, Script endet hier ...") 
    FileClose($LogFileHandle) 
    Exit 
    EndIf 
    FileWriteLine($LogFileHandle,@HOUR & ":" & @MIN & ":" & @SEC) 
    FileWriteLine($LogFileHandle,"KIX wurde gestartet ...") 
    Do 
    Sleep(2000) 
    Until ProcessExists("WKix32.EXE") = 0 
    $VergangeneZeit = TimerDiff($TimerStart) / 1000 
    FileWriteLine($LogFileHandle,@HOUR & ":" & @MIN & ":" & @SEC) 
    FileWriteLine($LogFileHandle,"KIX beendet nach " & $VergangeneZeit & " Sekunden ...") 
    FileWriteLine($LogFileHandle,"Systemstart wurde beendet!") 
    FileClose($LogFileHandle)
    Alles anzeigen

    Das Script selber starte ich über den Task-Scheduler von XP "beim Systemstart" mit dem System-Account. Leider erkennt das Script aber weder die oben beschriebenen Logon-Fenster/Dialoge noch den angemeldeten User. Wie kann man das hinbekommen? Muß das AutoIt-Script als kompilierte EXE und als Dienst laufen?

    Vorab vielen Dank für eure Hilfe,
    viele Grüße

    Thomas

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™