automatischer shutdown?

  • ich will ein programm schreiben, das den pc nach einer beliebigen inaktivitäts-zeit automatisch herunterfährt/abmeldet
    also wenn der pc z.B. für 10min nicht genutzt wird soll er sich ausschalten

    das mit dem herunterfahren ist ja ganz einfach (shutdown() bzw. shutdown.exe) aber ich weiß nicht wie ich prüfen kann, ob der pc aktiv genutz wird oder nicht

  • Kannst ja jede Sekunde die Mouseposition abgleichen und wenn die 10 Minuten lang gleich ist dann Shutdown().

  • ich weiß jetzt nicht wie ich weiter machen soll, dass er das jede sekunde checkt usw.

    $pos_x = MouseGetPos(0)
    $pos_y = MouseGetPos(1)
    $pos_xy = $pos_x & "x" & $pos_y
    MsgBox(0,"",$pos_xy)

  • [autoit]

    Global $AktuellePosition[3]
    Global $LetztePosition[3] = [ "", "" ]
    Global $Count = 0

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

    While 1
    $AktuellePosition = MouseGetPos()
    If $AktuellePosition[0] = $LetztePosition[0] And $AktuellePosition[1] = $LetztePosition[1] Then
    $Count += 1
    Else
    $LetztePosition[0] = $AktuellePosition[0]
    $LetztePosition[1] = $AktuellePosition[1]
    EndIf
    If $Count = 600 Then Shutdown( 1 )
    Sleep(1000)
    WEnd

    [/autoit]

    So müsste es klappen, habs nicht getestet...

    Einmal editiert, zuletzt von Daniel W. (18. Oktober 2006 um 14:46)

  • hab noch ein problem...

    wenn ich z.B. etwas brenne (oder bilder ansehe usw.), dann lass ich den pc laufen, aber leider schaltet der pc dann aus :rofl:

    wie könnte man das beheben?

    • Offizieller Beitrag

    Hi,

    hier das Gleiche nochmal in anders. :rofl:

    [autoit]

    If _shutdownNoMouse(3) Then MsgBox(0,"", "Shutdown initiated! :-)")

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

    Func _shutdownNoMouse($timeInSec)
    Local $mouseStart = MouseGetPos()
    Local $start = TimerInit()

    While 1
    $mouseAktuell = MouseGetPos()
    If $mouseAktuell[0] = $mouseStart[0] And $mouseAktuell[1] = $mouseStart[1] Then
    If (TimerDiff($start) /1000) >= $timeInSec Then Return 1
    Else
    $mouseStart = MouseGetPos()
    $start = TimerInit()
    EndIf
    Sleep(500)
    WEnd
    EndFunc ;==>_shutdownNoMouse

    [/autoit]

    So long,

    Mega

  • Hi,

    dieses Thema habe ich über die Board-Suche gefunden.

    Das Thema ist zwar schon etwas älter, aber das es noch "offen" ist, möchte ich noch einen anderen Lösungsansatz beisteuern.

    Ich hatte das gleiche Problem, weil bei uns häufiger mal unbemerkt ein PC über einen längeren Zeitraum unnötig in Betrieb war.


    Aus meiner Sicht haben die Skripte den Nachteil, dass immer ein Prog im Hintergrund läuft und Rechnerleistung kostet, wenn auch nicht viel. Damit das Ganze funktioniert, muss das kompilierte Skript ja in den Autostart kopiert und bei jedem Systemstart ausgeführt werden.

    Außerdem hätte ich dann noch gerne eine Message-Box gehabt, die zu einer definierten Zeit -z.B. 10 Minuten vor dem Shutdown- geöffnet wird und den Countdown runterzählt.

    Dann wäre da noch das Problem mit dem Bildschirmschoner. Funktioniert das kompilierte Skript, wenn der Bildschirmschoner aktiv ist?

    Und zum Schluß noch die Frage, können Tastatureingaben auch überwacht werden und wie umfangreich wird das dann?

    Das alles hätte sich natürlich auch auf die Größe und das Ausmaß des Sriptes ausgewirkt.


    Also habe ich nach Alternativlösungen gesucht.


    Beim googeln habe ich dann eine Lösung in Form eines Bildschirmschoner mit Shutdown-Funktion gefunden.

    Der Bildschirmschoner heißt "SHUTDOWN SCREENSAVER" und kann bei https://autoit.de/www.winload.de als Freeware herunter geladen werden.

    Nach dem entpacken muß die Datei in Windows\System32 kopiert werden und kann dann als Bildschirmschoner ausgewählt und konfiguriert werden. Die Countdownzeit wird im Bildschirmschoner angezeigt und ist frei wählbar.

    Für mich (und vielleicht auch für andere User) eine optimale Lösung des Problems.

    Es wird keine zusätzliche Rechnerleistung in Anspruch genommen und es werden sowohl Maus- als auch Tastaturaktionen überwacht.

    Gruß Tom