Pc Herunterfahren

  • Hallo,
    ich brauche ein Script, dass den Pc zu einer bestimmten Uhrzeit (sagen wir mal 22:00 Uhr) herunterfährt. Hintergrund ist, dass ich öfters, wenn ich gerade mal vom Pc weg muss den Pc mit Windows+L sperre jetzt ist es so, dass ich mich abends nicht wieder anmelden will um den Pc herunter zu fahren sondern das soll automatisch gehn, aber eben nur, wenn ich nicht gerade am Pc arbeite.
    Ich hoffe, ihr wisst, was ich meine.

    Schonmal danke im Vorraus.

  • Das kannst Du mit Windows selbst machen.
    linke Windowstaste und r drücken, dann "Aufgabenplanung" eingeben.
    Das ist dann schon ziemlich selbsterklärend.
    Der Befehl, den Du dann brauchst ist "shutdown". Gib mal die beiden Begriffe bei Suchmaschinen ein, da wirst Du schnell fündig.

    Voraus schreibt man nur mit einem r.

  • dass man den Pc um eine bestimmte Uhrzeit mit der Aufgebenplanung runterfahren kann weiß ich auch, aber es geht ja darum, dass ich nicht will , dass der runterfährt, wenn ich noch daran arbeite.
    Ich hatte auch vor, das Script mit der aAufgabnplanung auszuführen.

  • Ich das Script einfach mal kopiert und etwas geändert.

    Spoiler anzeigen
    [autoit]

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

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

    While(sleep(60000))
    Local $p_lngHwnd, $p_lngRtn, $p_lngErr, $p_lngScreenSaver, $p_blnIsScreenSaver

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

    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 Not $p_lngRtn[0] = 0 Then
    $p_blnIsScreenSaver = $p_lngScreenSaver
    EndIf
    EndIf

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

    If $p_blnIsScreenSaver Then
    If @OSTYPE = "WIN32_WINDOWS" Then
    $p_lngHwnd = DllCall("user32.dll", "int", "CloseDesktop", "int", $p_lngHwnd[0])
    EndIf
    Else
    $p_lngHwnd = DllCall("user32.dll", "int", "OpenDesktopA", "str", "Default", "int", 0, "int", False, "int", $DESKTOP_SWITCHDESKTOP)
    If Not $p_lngHwnd[0] = 0 Then
    $p_lngRtn = DllCall("user32.dll", "int", "SwitchDesktop", "int", $p_lngHwnd[0])
    If $p_lngRtn[0] = 0 Then
    If $p_lngErr = 0 Then
    Shutdown(4)
    Exit
    EndIf
    EndIf
    $p_lngHwnd = DllCall("user32.dll", "int", "CloseDesktop", "int", $p_lngHwnd[0])
    EndIf
    EndIf
    WEnd

    [/autoit]


    Funktioniert das so, wenn ich das um 10:00 Uhr mi der Aufgabenplanung ausführen lasse?

    Oder wie kann man das mit Windows machen?

    Einmal editiert, zuletzt von jjj (27. Oktober 2013 um 15:23)