Autoit starten nach Sperrung des Computers

  • Hallo liebe Autoit'ler,

    ich arbeite zum erstenmal mit Autoit, bzw. versuche mich daran.

    Wie die meisten vermutlich wissen, kann man den Computer durch Strg+alt+entf, oder Windowstaste+L sperren lassen, damit man in Ruhe seinen Platz verlassen kann.

    Gibt es eine Möglichkeit ein Autoit direkt nach dem entsperren starten zu lassen?

    Ich möchte, dass dieses eine Anwendung auf dem Desktop startet.

    Könnt ihr mir weiterhelfen? :rolleyes:

    Vielen Dank schonmal und viele Grüße. :)

    • Offizieller Beitrag

    Hi,

    erster Ansatz :

    [autoit]

    While 1
    Sleep(1000)
    If _isWorksatationLocked() Then ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & " - " & "workstation locked" & @CRLF)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _isWorksatationLocked()
    If StringInStr(WinGetText(""), "Program Manager") <> 0 And WinGetTitle("") = "" Then Return 1
    Return 0
    EndFunc ;==>_isWorksatationLocked

    [/autoit]

    Mega

  • Das ist aufjedenfall schonmal eine Hilfe! :) Vielen Dank!

    Wie kann ich ihm denn sagen, wo er die Klicks setzen soll?
    Im Prinzip muss die Maus nur zweimal auf ein Programm klicken(also öffnen) und dann noch die Anmeldung per Mausklick abschließen.

  • Im Prinzip soll ich automatisch in einem Programm wieder eingelogt werden, wenn der Computer entsperrt wurde.
    Da ich mich vor dem Sperren abmelden muss. Dazu müssen im Prinzip "nur" Klicks ausgeführt werden. ?(

  • Ja, es soll die ganze Zeit laufen, aber das tut es ja auch, wenn er mich automatisch eingelogt hat.
    Es soll mich natürlich nicht alle 10 Sekunden neu einloggen. :)

  • Ich werde mal etwas ausprobieren. Poste dann, was ich erreicht habe, oder auch nicht. :S
    Was heißt flag setzen?

  • Also heute hatte ich leider erst Zeit für die ganze Sache.
    Leider meckert er schon bei der ersten Zeile :D , wo auch sonst. ;)

    Ich wollte zunächst die Whileschleife starten, aber er meckert schon bei---->

    While 1


    Wie kann das sein? ;(

    Insgesamt habe ich erstmal den Quelltext von Mega reingetan und wollte ihn modifizieren. Also das--->

    While 1
    Sleep(1000)
    If _isWorkstationLocked() Then ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & " - " & "workstation locked" & @CRLF)
    WEnd

    Ist daran etwas flasch?
    Ich möchte ja zunächst mal nur die Schleife zum laufen bringen.

  • Er meckert bei 'While 1' ?
    Ganz sicher das nichts davor in deinem Source steht ?
    Welche Version benutzt du denn ?
    Versuch mal 'While True'.

  • also erstens fehlt in der zeile

    Zitat

    If _isWorkstationLocked() Then ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & " - " & "workstation locked" & @CRLF

    schonmal das EndIf
    2. Die Klammer: )
    3. würd ich das der übersichthalber so schreiben:

    [autoit]

    While 1
    If _isWorkstationLocked() Then
    ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & " - " & "workstation locked" & @CRLF)
    EndIf
    WEnd

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Zitat

    also erstens fehlt in der zeile
    Zitat
    If _isWorkstationLocked() Then ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & " - " & "workstation locked" & @CRLF
    schonmal das EndIf

    Wenn auf das "Then" der Befehl folgt, wird kein "EndIf" geschrieben !

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Zitat

    Wenn auf das "Then" der Befehl folgt, wird kein "EndIf" geschrieben !

    hmm das script von ihm ausprobiert... er hat mir die fehlermeldung mit dem endif gegeben aber ich glaub dir jetzt einfach mal :D

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Also jetzt bringt er eine andere Fehlermeldung:

    [Blockierte Grafik: http://img407.imageshack.us/img407/7092/erroroz0.jpg]

    Wo muss ich denn den Funktionsnamen bestimmen?
    Ich möchte erstmal das zum Laufen bekommen, dass Autoit nach dem entsperren reagiert, also das die Schleife funktioniert, danach möchte ich mich darum kümmern, dass Autoit das richtige macht. ;) Also bitte nicht wundern, dass die Console erstmal nur etwas schreiben soll.

  • Moin Autoitit,

    hast du ein #include vergessen?
    Du musst gucken wo die Funktion _isWorkstationLocked() herkommt und das mit #include einbinden.

    Edit : Du hast die Funktion #cs und #ce auskommentiert.
    Dann kann das ja nicht klappen ;)

    Einmal editiert, zuletzt von JanSchmidt (27. Februar 2008 um 09:35)

    • Offizieller Beitrag

    HI,

    also das funktioniert einwandfrei

    Spoiler anzeigen
    [autoit]

    While 1
    Sleep(1000)
    If _isWorksatationLocked() Then ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & " - " & "workstation locked" & @CRLF)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _isWorksatationLocked()
    If StringInStr(WinGetText(""), "Program Manager") <> 0 And WinGetTitle("") = "" Then Return 1
    Return 0
    EndFunc ;==>_isWorksatationLocked

    [/autoit]

    Edit: satation <-- habe ich aus deinem Code so kopiert. :D

    Mega

  • Hm, bei dir ja! ;)

    @ Mega, hast du denn ein Include drin?
    Wenn ja, woher hast du es und wo und wie setzt man das Include rein?

    (Bin übrigens totaler Anfänger, was programmieren betrifft, habe bisher nur etwas java gelernt. Aber das habt ihr sicher schon gemerkt! :D )

    PS: Habe mich schon gewundert, wozu das gut ist! ;) (satation)

    Edit erzählt: Stimmt, die Funktion sollte ic nicht ausklammern! :whistling:

    Einmal editiert, zuletzt von Autoitit (27. Februar 2008 um 09:41)