Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Auto-Shut-Down


  • Please log in to reply
2 replies to this topic
MKH
  • Members
  • 26 posts
  • Last active: Aug 06 2013 04:46 AM
  • Joined: 01 May 2013

Ich war im www auf der Suche nach einem Programm für den PC meiner Kinder, welches den PC nach vorgegebener Zeit herunter fährt.

Gefunden hab ich zwar Programme, diese erfüllten aber nicht mein Hauptkriterium.

"Gesammtnutzungszeit am PC"

Alle Programm, die ich gefunden und probiert habe, haben sich nicht die schon genutzte Zeit gemerkt.

 

Also musste ich mich selbst ans Werk machen. Herausgekommen ist das:

(Für alle Eltern, die ihren Kindern eine vorgegebene Zeit (Max-Zeit je Tag) am PC einräumen)

 /*
************************************************************
******* Programm zum automatischen herunterfahren **********
************* des PC nach vorgegebener Zeit.****************
** Script und .ini in das betreffende Benutzerkonto legen **
********* Verknüpfung in den Autostart erstellen. **********
************************************************************
 */


#NoTrayIcon
#NoEnv  
SendMode Input  
SetWorkingDir %A_ScriptDir%  
#Persistent

Sleep, 60000			;~ wartet 1 min, damit der PC hoch fahren kann

;~ Datumsabgleich
FormatTime, heute,, ShortDate
IniWrite, %heute%, asd.ini, Datum, 1.-Datum
IniRead, lesen2, asd.ini, Datum, 2.-Datum 

if (lesen2 = heute)
	Goto, Same-Day
	else
	{
		IniWrite, %heute%, asd.ini, Datum, 2.-Datum
		IniWrite, 0, asd.ini, Minuten, Zählen
		Goto, Same-Day
	}
Return

;~ Minutenabgleich
Same-Day:
IniRead, MinutenZählen, asd.ini, Minuten, Zählen
IniRead, MaxMinuten, asd.ini, Minuten, MaxMinuten
If (MinutenZählen >= MaxMinuten)
	Goto, Feierabend
	else
		GoTo, Weiterzählen
Return

;~ Minuten zählen
Weiterzählen:
IniRead, MinutenZählen, asd.ini, Minuten, Zählen
IniRead, MaxMinuten, asd.ini, Minuten, MaxMinuten
Restzeit1 = %MaxMinuten% 
Restzeit2 = %Minutenzählen%
EnvSub, Restzeit1, %Restzeit2%
ToolTip, %Restzeit1% Minuten `n Restzeit, 10, 10
sleep, 60000
minutenzählen++

if (Minutenzählen <= MaxMinuten)
	{
	IniWrite, %Minutenzählen%, asd.ini, Minuten, Zählen
	Goto, Weiterzählen
	}
	else
	{
	Goto, Feierabend
	}
	Return

;~ Ende im Gelände :)
Feierabend:
Gui, +ToolWindow
Gui, Font, Bold Underline S20
Gui, Add, Text,, Für Heute `nist schluss
Gui, Show, AutoSize Center, Schluss !!!
Sleep, 10000
Shutdown, 5
Return

;~ .ini im Editor starten um Gesamtzeit (MaxMinuten) zu ändern
!^i::
run, asd.ini
return

die "asd.ini"

[Datum]
1.-Datum=01.06.2013
2.-Datum=01.06.2013


[Minuten]
Zählen=0
MaxMinuten=60

sicherlich gibt es elegantere codeschreibweisen, die Ihr mir auch mitteilen dürft wink.png

ansonsten viel spass damit



SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012

Naja, sagen wir mal so, es gibt nicht Timer (SetTimer) ;)

Ich glaube, sowas suchst du eher, bzw. das würde dein Programm einfacher/besser/ressourcenschonender machen...



MKH
  • Members
  • 26 posts
  • Last active: Aug 06 2013 04:46 AM
  • Joined: 01 May 2013

SetTimer werd ich beim nächstenmal in betracht ziehen. thx