Hallo Leute,
es ist endlich soweit ich habe nun nach einiger Arbeit und herumfragerei mein Script fertiggestellt.
Es heisst PC Laufzeit Creator, mit diesem Programm kann man dem PC eine eigene Laufzeit verpassen, nach ablauf der Zeit meldet sich das System selbstständig ab man wird vorher nochmal gewarnt und man kann Dinge speichern und schließen, Ich denke eine Minute dafür sollten reichen. Dieses Programm ist Hilfreich wenn man mal seinen Sohn/Tochter an den PC lässt, so lässt es sich besser Kontrolliern wie lange sie an dem PC bleiben dürfen.
Ich habe das Script so Programmiert, dass wenn man in das Inputfeld eine Null eingibt, dann wird das Programm beendet und der PC ist an keine Laufzeit gebunden. seht euch das Programm ruhig selbst an
Spoiler anzeigen
#include <GUIConstants.au3>
#Include <File.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <Misc.au3>
#include <TabConstants.au3>
#Include <Date.au3>
#Include <WinAPI.au3>
#include <StaticConstants.au3>
#include <ButtonConstants.au3>
#include <SliderConstants.au3>
#include <WindowsConstants.au3>
#Include <GUIMenu.au3>
#include <Process.au3>
Global $Zeit = 0, $Timer
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("PC Laufzeit", 459, 89, 340, 299, BitOR($WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_BORDER,$WS_CLIPSIBLINGS,$WS_EX_LAYERED))
$Label1 = GUICtrlCreateLabel("Bitte geben Sie hier die gewünschte PC laufzeit in Minuten ein!", 8, 8, 444, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$minuten = GUICtrlCreateInput("60", 16, 48, 145, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER))
$Button1 = GUICtrlCreateButton("Zeit Setzen", 168, 48, 75, 25, 0)
$input1 = GUICtrlCreateInput("", 260, 48, 180, 21, $ES_READONLY)
ControlDisable ($Form1,"",$input1)
GUICtrlSetState($Button1, $GUI_DEFBUTTON)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
WinSetState("[CLASS:Shell_TrayWnd]","",@SW_HIDE) ; Taskbar Verstecken
WinSetState("[TITLE:Start;CLASS:Button]","",@SW_HIDE) ; Versteckt Startbutton
WinSetState("[CLASS:Progman]","",@SW_HIDE) ; Versteckt Desktop Icons
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Close()
Case $Button1
$string = GUICtrlRead($minuten)
; Variablen
$titel = "Restlaufzeit" ; Titel, es wird auch ein Info Icon mit angezeigt
$DauerStd = 0 ; Dauer in Stunden
$DauerMin = $string ; Dauer in Minuten
$DauerSek = 0; Dauer in Sekunden
$DauerGesammt = (60*60*$DauerStd)+(60*$DauerMin)+$DauerSek ; Die Gesamtdauer
$Befehl = "cmd" ; Der Befehl der ausgeführt werden soll, es kann auch die _toDo() Fuktion angepasst werden
$Zeit = $DauerGesammt
$Timer = TimerInit()
AdlibRegister("Countdown", 1000)
If $string = 0 Then Exit
GUISetState(@SW_HIDE)
WinSetState("[CLASS:Progman]","",@SW_SHOW) ; Macht Desktop Icons wieder sichtbar
WinSetState("[TITLE:Start;CLASS:Button]","",@SW_HIDE) ; Macht Startbutton wieder sichtbar
WinSetState("[CLASS:Shell_TrayWnd]","",@SW_SHOW) ; Taskabr sichtbar machen
EndSwitch
Time()
WEnd
Func Countdown()
Local $x = $Zeit - TimerDiff($Timer)/1000
ToolTip("Restzeit: " & _Sek2StdMinSek($x),0,0,$titel,1)
;TrayTip($titel,"Restzeit: " & _Sek2StdMinSek($x),5,1) ;<-- Das ist eine weitere möglichkeit die ablaufende Zeit anzeigen zu lassen...
If ($x <= 0) Then AdlibUnRegister("Countdown")
If ($x <= 0) Then MsgBox(0,"Schluss","Die Zeit ist abgelaufen Sie werden in einer Minute abgemeldet! Goodbye! Made by Ququknife ...")
Sleep(60000)
If ($x <= 0) Then Shutdown(0)
EndFunc
;-----------------------------------------------------------------------------------------------------------------
; Funktion zum umrechnen von Sekunden in Stunden, Minuten, Sekunden
Func _Sek2StdMinSek($value)
; Hier eine kleine Auswahl von Formaten, diese bitte bei dem Return Befehl mit angeben.
$format1 = "%02d:%02d:%02d"
$format2 = "%02d:%02d"
$format3 = "%02d Std. %02d Min. %02d Sek."
$format4 = "%02d Std. %02d Min."
$std = Floor($value / (60*60)) ; Berechnung der Stunden
$value = $value - ((60*60) * $std) ; Berechnung des Restwertes der Sekunden
$min = Floor($value / (60)) ; Berechnung der Minuten
$sek = $value - ((60) * $min) ; Rest Sekunden
Return StringFormat($format3,$std,$min,$sek) ; Rückgabe des formatierten Strings
EndFunc
;===================== Datum / Zeit in Inputbox darstellen ==================================
Func Time()
$Time = _NowTime(5)
$Date = _NowDate()
GUICtrlSetData ($input1,"Time:"&" "&$Time&" "&"Date:"&" "&$Date)
EndFunc
;=============================================================================================
;==================== Programm kann nicht geschlossen werden =================================
Func Close()
ToolTip("Gesperrt")
Sleep(2000)
ToolTip("")
EndFunc
;===============================================================================================
[/autoit]Lg
Ququknife