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. RoGiebler

Beiträge von RoGiebler

  • Überprüfen ob PC gesperrt ist

    • RoGiebler
    • 5. Dezember 2011 um 08:10

    Hallo Zusammen,

    habe nun das Script von "Xenobiologist" verwendet und auf meine Gegebenheiten angepasst. Nochmals Vielen Dank für die rasche Hilfe auch an "water" und "Protex".

    Gruß
    Rolf


    Hier noch meine Version:

    Spoiler anzeigen


    Global Const $DESKTOP_ENUMERATE = 0x40
    Global Const $SPI_GETSCREENSAVERRUNNING = 114
    Global Const $DESKTOP_SWITCHDESKTOP = 0x100

    Local $p_lngHwnd, $p_lngRtn, $p_lngErr, $p_lngScreenSaver, $p_blnIsScreenSaver

    If @OSTYPE = "WIN32_WINDOWS" Then
    $p_lngHwnd = DllCall("user32.dll", "int", "OpenDesktopA", "str", "screen-saver", "int", 0, "int", False, "int", $DESKTOP_ENUMERATE)
    If $p_lngHwnd[0] <> 0 Then
    $p_blnIsScreenSaver = True
    Else
    $p_blnIsScreenSaver = False
    EndIf
    Else
    $p_lngRtn = DllCall("user32.dll", "int", "SystemParametersInfoA", "int", $SPI_GETSCREENSAVERRUNNING, "int", 0, "int", $p_lngScreenSaver, "int", 0)
    If $p_lngRtn[0] = 0 Then
    ConsoleWrite("+>Error detecting screen saver" & @LF)
    Else
    $p_blnIsScreenSaver = $p_lngScreenSaver
    EndIf
    EndIf

    If $p_blnIsScreenSaver Then
    If @OSTYPE = "WIN32_WINDOWS" Then
    ConsoleWrite("Screen saver is running..., Handle #" & $p_lngHwnd[0] & @LF)
    $p_lngHwnd = DllCall("user32.dll", "int", "CloseDesktop", "int", $p_lngHwnd[0])
    Else
    ConsoleWrite("Screen saver is running on W2K+" & @LF)
    EndIf
    Else
    $p_lngHwnd = DllCall("user32.dll", "int", "OpenDesktopA", "str", "Default", "int", 0, "int", False, "int", $DESKTOP_SWITCHDESKTOP)
    If $p_lngHwnd[0] = 0 Then
    ConsoleWrite("Error with OpenDesktop" & @LF)
    Else
    $p_lngRtn = DllCall("user32.dll", "int", "SwitchDesktop", "int", $p_lngHwnd[0])
    If $p_lngRtn[0] = 0 Then
    If $p_lngErr = 0 Then
    ; ConsoleWrite("! Desktop is locked" & @LF)
    ; MsgBox(0, "Nachricht", "Desktop war gesperrt")
    Exit
    Else
    ConsoleWrite("Error with SwitchDesktop" & @LF)
    EndIf
    Else
    ConsoleWrite("Not locked!" & @LF)
    EndIf
    $p_lngHwnd = DllCall("user32.dll", "int", "CloseDesktop", "int", $p_lngHwnd[0])
    EndIf
    EndIf

    ; .... weiterer Ablauf meines Scripts ....

  • Überprüfen ob PC gesperrt ist

    • RoGiebler
    • 2. Dezember 2011 um 14:12

    Die beiden Scripts von Xenobiologist sind für meine Zwecke verwendbar, Danke. Muss ich jedoch noch auseinanderklamüstern, diese Scripts sind zur ständigen Überwachung gedacht was ja bei meinem Script nicht geplant ist. Mein Script wird über den geplanten Task von Windows gestartet, weiß nicht ob ich das so zur Geltung gebracht hatte. Hier nochmal der gewünschte Ablauf:

    - EXE-Datei wird übergeplanten Task gestartet
    - Script überprüft ob der PC gesperrt ist
    - Wenn ja, das Script wird beendet.
    - Wenn nein, der restliche Ablauf wird gestartet und das Script wird danach beendet.

    Werde mich weiter durchkämpfen - sobald ich was habe werde ich es hier veröffentlichen.

    Gruß
    Rolf

  • Überprüfen ob PC gesperrt ist

    • RoGiebler
    • 30. November 2011 um 16:04

    Ich danke Euch (Protex und water) vielmals, das sind beides gute Ansätze. :thumbup: Werde mit den beiden Ansätzen schaun was ich tun kann und im Lösungsfall hier natürlich posten.

    Gruß
    Rolf

  • Überprüfen ob PC gesperrt ist

    • RoGiebler
    • 30. November 2011 um 11:20

    Es handelt sich um ein fertiges Script das Daten in eine Software importiert. Da jedoch Mausaktionen ausgeführt werden müssen funktionieren diese nicht beim gesperrten PC. Mein Gedanke war eigentlich simpel:

    Script wird gestartet per geplantem Task -> Script überprüft ob der PC gesperrt ist -> Wenn ja, dann wird das Script beendet (wäre absolut kein Problem) - andernfalls wie gewohnt ausgeführt.

    Es ist mir bekannt dass ich es in den geplanten Tasks angeben kann dass der Task NUR ausgeführt werden soll wenn ein Benutzer angemeldet ist. Mir wäre es allerdings lieber wenn ich das selbst über das Script lösen könnte.

    Gruß
    Rolf

  • Überprüfen ob PC gesperrt ist

    • RoGiebler
    • 30. November 2011 um 09:22

    Hallo Zusammen,

    da mein AutoIT-Script nur läuft wenn ein Benutzer am PC angemeldet ist, würde ich gerne zu Beginn des Scripts überprüfen ob der PC gesperrt ist, wenn ja, dann wird das Script gleich wieder beendet. Bisher konnte ich lediglich Informationen finden wie der PC per AutoIT-Script gesperrt werden kann.

    Vielen Dank schonmal für die Hilfe.

    rogi

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™