Jaja, meine Mudda müsstet ihr kennen
Macht ihren PC an, geht vor weg und kommt auch nicht
wieder
Und wir sind dann die blöden die ihren PC hinter ihr aus machen
Und das ist auch schon der Grund, warum ich mich in
AutoIt reingearbeitet habe xD
Denn:
Bei Windoof kann man den PC in standby / Ruhezustand versetzen lassen,
aber nicht bei Inaktivität ausschalten. Windoof halt.
Mir scheint mein Script dazu relativ ausgereift
(Ideen / Verbesserungen werden dankend angenommen ^^),
würd mich über eure Meinungen freuen, und wenns wer
nutzen will... greif zu, ich kanns ja nicht verhindern
Ahja.. dieses komische rumgerechne mit $sleep und $wait kommt
daher, dass ich inzwischen 5 versionen von dem Script geschrieben hab,
und in der ersten Versuchen ich noch mit Sleep's gearbeitet hab,
was das ganze ungenau und träge machte..
könnt ihr kürzen
(Für die ersten Versionen würdet ihr mich sowieso nur auslachen,
deshalb lass ich die ma vorerst weg ^^)
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.2.0
Author: noels
Script Function:
Herunterfahren bei Inaktivitität, CPU-schonend
Inklusive Autostart und speichern der Zeiteinstellung in einer Ini.
#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#include <GuiConstants.au3>
#include <Constants.au3>
RegRead( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Inaktiv5.1" )
If @error Then
$answer = MsgBox( 4+32, "Autostart", "Möchten Sie das Programm in den" & @CRLF & "Autostart setzen?" )
If $answer = 6 Then
RegWrite( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Inaktiv5.1", "REG_SZ", @ScriptFullPath )
ElseIf $answer = 7 Then
MsgBox( 0, "Autostart", "Das Programm wurde nicht in den" & @CRLF & "Autostart gesetzt." )
EndIf
EndIf
Dim $i = 0
$sleep = IniRead( @MyDocumentsDir&"\Inaktiv.ini", "Sleep", "Minuten", 20 )
Dim $wait = $sleep*60000
Opt("TrayAutoPause", 0 )
Opt( "TrayMenuMode", 1 )
Opt( "GUIOnEventMode", 1 )
Opt( "TrayOnEventMode", 1 )
$tray_wieder = TrayCreateItem( "Wiederherstellen" )
TrayItemSetOnEvent( $tray_wieder, "wieder" )
$tray_exit = TrayCreateItem( "Exit" )
TrayItemSetOnEvent( $tray_exit, "quit" )
$main = GuiCreate("Inaktiv5.1", 371, 135,-1, -1 )
$menu = GUICtrlCreateMenu( "&Datei" )
$zeit_def = GUICtrlCreateMenuitem( "Zeit zum Shutdown", $menu )
$deinstall = GUICtrlCreateMenuitem( "Deinstallieren?", $menu )
GUICtrlSetOnEvent( $deinstall, "deinstall" )
GUICtrlSetOnEvent( $zeit_def, "einstellungen" )
$Progress_1 = GuiCtrlCreateProgress(30, 40, 310, 20)
$Button_2 = GuiCtrlCreateButton("Beenden", 220, 90, 110, 20)
GUICtrlSetOnEvent( $Button_2, "quit" )
GUISetOnEvent( $GUI_EVENT_MINIMIZE, "mini" )
GUISetOnEvent( $GUI_EVENT_CLOSE, "mini" )
GuiSetState(@SW_HIDE)
While 1
$ax = MouseGetPos(0)
$ay = MouseGetPos(1)
Sleep( 30000 ) ;alle 30 sec abfragen
$bx = MouseGetPos(0)
$by = MouseGetPos(1)
$timer = TimerInit()
While $ax = $bx And $ay = $by
$bx = MouseGetPos(0)
$by = MouseGetPos(1)
Sleep( 1000 )
$diff = TimerDiff( $timer )
GUICtrlSetData( $Progress_1, ($diff/$wait)*100 )
If $diff/$wait > 1 Then
Shutdown( 13 )
EndIf
WEnd
$timer = TimerInit()
$diff = TimerDiff( $timer )
GUICtrlSetData( $Progress_1, ($diff/$wait)*100 )
WEnd
Func quit()
Exit
EndFunc
Func mini()
GUISetState( @SW_HIDE, $main )
EndFunc
Func wieder()
GUISetState( @SW_SHOW, $main )
EndFunc
Func einstellungen()
Opt( "GUIOnEventMode", 0 )
$opt_gui = GuiCreate("Optionen", 248, 133,-1, -1 )
$Input_1 = GuiCtrlCreateInput($sleep, 40, 50, 30, 20)
$Label_2 = GuiCtrlCreateLabel("min: 10 max: 120", 40, 20, 160, 20)
$Label_3 = GuiCtrlCreateLabel("Minuten bis zum Shutdown", 80, 50, 140, 20)
$Button_4 = GuiCtrlCreateButton("OK", 80, 90, 80, 20, $BS_DEFPUSHBUTTON)
GuiSetState()
$x = 1
While $x = 1
$msg = GUIGetMsg()
If $msg = $Button_4 Then
$sleep = GUICtrlRead( $Input_1 )
$check = StringIsDigit ( $sleep )
If $check = 0 Then
MsgBox( 48, "Error", "Zahl bitte NICHT ausschreiben ;)" )
ElseIf $check = 1 Then
If $sleep > 120 or $sleep < 10 Then
MsgBox( 48, "Error", "Mindestens 10, höchstens 120 Minuten!" )
ElseIf $sleep > 9 And $sleep < 121 Then
IniWrite( @MyDocumentsDir&"\Inaktiv.ini", "Sleep", "Minuten", $sleep )
$wait = $sleep*60000
GUIDelete( $opt_gui )
Opt( "GUIOnEventMode", 1 )
$x = 2
EndIf
EndIf
EndIf
WEnd
EndFunc
Func deinstall()
$de_ans = MsgBox( 32+4, "Deinstallieren", "Möchten Sie das Programm vollständig" & @CRLF & "von Ihrem Rechner entfernen?" )
If $de_ans = 6 Then
RegRead( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Inaktiv5.1" )
If Not @error Then
RegDelete( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Inaktiv5.1" )
EndIf
FileDelete( @MyDocumentsDir&"\Inaktiv.ini" )
GUIDelete( $main )
FileDelete( @ScriptFullPath )
ElseIf $de_ans = 7 Then
MsgBox( 0, "Deinstallation", "Abgebrochen" )
EndIf
EndFunc
Joa,
mfG Noels