CG Simple Shutdown 1.0

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Firstdeathmaker

Betreff: CG Simple Shutdown 1.0

BeitragMi, Okt 04, 2006 11:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi ihr alle,
ich bin hier gerade fuer ein Jahr in Wales, GB, total abgelegen von allem und um ins Internet zu kommen muss ich auch immer ein paar Muehen auf mich nehmen und kann auch nicht viel hochladen. Aber ich habe natuerlich nicht aufgehoert zu programmieren, wenn ich auch leider kaum noch Zeit dafuer habe. Aber immer wenn ich Abends im Bett liege, moechte ich Musik zum einschlafen hoeren, und da mir bisher alle Programme im Internet nicht gefallen haben (Kostenpflichtig oder zu gross fuer meine Zwecke) hab ich mir kurzerhand selber eines geschrieben und moechte es euch auch hier zur Verfuegung stellen.


Code: [AUSKLAPPEN]
; Code by Christian Geissler, 2006
; license: Public Domain

AppTitle "CG Simple Shutdown 1.0"

Graphics 300,55,32,2
SetBuffer BackBuffer()
ClsColor 255,255,255

f1 = LoadFont("Arial",16)
f2 = LoadFont("Arial",20,True)

Color 0,0,0
Cls
SetFont f1

Global Mode ; Countmode
Global Time% ; Current Time
Global Shutdowntime% ; Time when Shutdown starts

Text 150, 5, "0 quit | 1 countdown | 2 time | 3 random", 1
Locate 85,30
Repeat
   Mode = Int(Input ("Please enter mode: "))
   If Mode = 0 End
Until Mode>=1 And Mode <=3

Cls
Locate 5,5

Select Mode
   Case 1
      Print "Mode: countdown"
      Locate 5,25
      Shutdowntime% = ReturnMS(Input("Countdown, format [H:M:S]: "))
      Shutdowntime% = Shutdowntime% + MilliSecs()
   Case 2
      Print "Mode: time"
      Locate 5,25
      TmpTime$ = Input("Time, format [H:M:S]: ")
      Shutdowntime%  = ReturnMS(TmpTime) - ReturnMS(CurrentTime())
      If Shutdowntime <= 0 Shutdowntime% = ReturnMS(TmpTime) - ReturnMS(CurrentTime()) + 24*60*60*1000
      Shutdowntime% = Shutdowntime% + MilliSecs()
   Case 3
      Print "Mode: random"
      Locate 5,19
      tmp1 = Float(Input("Min. minutes: "))
      Locate 5,32
      tmp2 = Float(Input("Max. minutes: "))
      Shutdowntime% = Int( Rnd(tmp1,tmp2) * 1000 * 60 )
      Shutdowntime% = Shutdowntime% + MilliSecs()
End Select

Global Shutdown = False

Shutdowntime = Shutdowntime + Time



Repeat
   Time = MilliSecs()
   Cls
   SetFont f2
   Text 150,2,"Still remaining: "+ReturnTimeString$((Shutdowntime-Time)),1
   SetFont f1
   Text 150,20,"Esc      - to quit without shutdown",1
   Text 150,34,"Spacebar - shutdown immediately",1
   Flip
   Delay 1000
   
   If KeyHit(1) End
   If KeyHit(57) Shutdown = True
   

   If Time>Shutdowntime Shutdown = True

Until Shutdown


ExecFile ("shutdown -s -f -t 00")
End


;Functions


      Function ReturnMS%(TimeString$)
         pos1 = Instr(TimeString$, ":")
         pos2 = Instr(TimeString$, ":", pos1+1)
         
         
         h = Mid(TimeString$, 1, 2)
         If pos1 m = Mid(TimeString$, pos1+1, 2)
         If pos2 s = Mid(TimeString$, pos2+1, 2)
         
         h = h Mod 24
         m = m Mod 60
         s = s Mod 60
         
         Return (( h * 60 + m ) * 60 + s ) * 1000
      End Function
      
      
      Function ReturnTimeString$(MS%)
         s = Floor ( MS / 1000 )
         m = m + Floor(s / 60)
         h = h + Floor(m / 60)
         d = Floor ( h / 24 )
      
         h = h Mod 24
         m = m Mod 60
         s = s Mod 60
         Return (h+"h:"+m+"m:"+s+"s")
      End Function




MFG
FDM @ Wales
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

PowerProgrammer

BeitragMi, Okt 04, 2006 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Nettes Progrmämmchen. Aber vielleicht doch etwas übertrieben. Wenn man mal eben 20 minuten Musik hören mächte, reicht doch einfach
Code: [AUSKLAPPEN]
Ausführen->shutdown -s -f -t 1200

oder?

Jedenfalls ewin ziemlich langer Code, um nur mal eben eine datei aufzurufen Laughing

EDIT: Wie dumm von mir Laughing
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!
  • Zuletzt bearbeitet von PowerProgrammer am Mi, Okt 04, 2006 13:02, insgesamt 2-mal bearbeitet

Justus

BeitragMi, Okt 04, 2006 12:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
shutdown -s -f -t 1200

5k41

BeitragMi, Okt 04, 2006 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Heyho!
Lang nix mehr von die gehört ( schreib dir gleich mal ne PN )
Ich benutze SD Timer, was mir daran gefällt ist, das die Zeit per GUI
(mit Inputfield oder Pfeilrauf und runter ) geändert werden kann, was sehr konfortabel ist und einem auch etwas arbeit abnimmt, da man so auch sehr einfach den letzten Wert der eingegeben wurde speichern kann... ok ich seh ein das es nur ne kleine Spielerei ist, aber dann würds richtig sinn machen...

MfG

P.S.: Was mir grad noch einfällt sind die tollen 100% Systemleistung... ich glaub ich würd ein programm zur eingabe schreiben, was dann alles in Sekunden umrechnet, es an shutdown.exe übergibt und sich beendet Wink
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

PowerProgrammer

BeitragMi, Okt 04, 2006 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Was mir grad noch einfällt sind die tollen 100% Systemleistung...


Wie denn das? Firstdeathmaker hat da doch ein delay 1000 zwischengeknallt!
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!

5k41

BeitragMi, Okt 04, 2006 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, sorry hab mir den Code nicht so genau angeguckt und bin von einem Standart Biltzprogramm ausgegangen... dann ists natürlich was anderes...

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

StepTiger

BeitragMi, Okt 04, 2006 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
hört sich an, als hättest du das programm erst gar nicht probiert Smile
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

PowerProgrammer

BeitragMi, Okt 04, 2006 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Na klar hat er das Teil getestet. Alle Anwendungen neu starten und nicht gespeicherte Dokumente recreieren geht ja super einfach Wink Oder einfach die entsprechende Zeile auskommentieren...

Um auch etwas zum Thema zu sagen: Ich finde das winzige Fenster niedlich Very Happy
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!

5k41

BeitragDo, Okt 05, 2006 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
@StepTiger:
Ich kann eigentlich einen solchen kleinen Code soweit entschlüsseln, sodass ich das Programm nicht testen muss um ungefähr zu wissen wie es aussieht und was es tut, nur hab ich in diesem fall etwas sehr grob überflogen Wink

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Firstdeathmaker

BeitragMo, Okt 09, 2006 10:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hehe, nette Diskussion...

Na klar kann man das ganze auch per "Ausfuehren" machen, aber wenn ich den Rechner um 23:30 runterfahren moechte und gerade 22:47 haben, moechte ich nicht lange rumrechnen muessen wie viele Sekunden das sind.
Und vor allem: Was ist wenn du dich nicht entscheiden kannst ob du den PC nun noch 10 oder doch besser 20 Minuten an haben moechtest? Dafuer ist die "Random" Moechlichkeit meines Programs geschaffen!

Ausserdem kann man meinen Shutdown mit einem Druck auf ESC sehr schnell und einfach abbrechen wenn man es doch anders haben moechte, und muss nicht erst shutdown -a in die Konsole eingeben. Auch wenn man den Rechner dann vorher runterfahren moechte, reicht ein Druck auf die Leertaste dafuer aus (Wenn man auf dem Bett im halbschlaf liegt ist die Leertaste am einfachsten und treffsichersten zu erreichen). Auch ist nicht jeder User so bewandert mit dem Computer wie wir und weis wie man den Rechner ueber die Konsole runterfahren kann.

Das Fenster ist so klein als moechlich, damit man es in der oberen Ecke seiner PCs verstecken kann, und ich hab extra nicht mehr Funktionen oder ne andere GUI eingebaut weil es das Programm unnoetig gross gemacht haette (und ich den Code nicht mehr so einfach hier haette posten koennen, da ich von hier aus nicht so gut Images hochladen kann)

Und die Systemauslastung ist nun wirklich minimal Wink

So, sonst noch irgentwelche Ideen was an meinem Program nicht "richtig" sein koennte? Wink


Ach ja, eine Frage haette ich, falls das jmd weis: Wenn ich nen anderes Vollbildprog starte waerend mein Shutdowntimer laeuft, und das Vollbildprog dann beende, ist die Anzeige meines Progs verschwunden, b.z.w. wird nicht mehr aktualisiert. Wie kann ich das verhindern?
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image
 

X0r

BeitragMo, Okt 09, 2006 14:42
Antworten mit Zitat
Benutzer-Profile anzeigen
>ExecFile ("shutdown -s -f -t 00")
OMG. Auf welchen Betriebssystemen funktioniert das nochmal? (Nur WindowsXP, oder?) Very Happy


Ansonsten, gut.

PowerProgrammer

BeitragMo, Okt 09, 2006 14:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Firstdeathmaker hat Folgendes geschrieben:
Ach ja, eine Frage haette ich, falls das jmd weis: Wenn ich nen anderes Vollbildprog starte waerend mein Shutdowntimer laeuft, und das Vollbildprog dann beende, ist die Anzeige meines Progs verschwunden, b.z.w. wird nicht mehr aktualisiert. Wie kann ich das verhindern?

Warum das denn? Flip aktualieiert das doch. Das ist komisch. DirectX spinnt Wink
Bei gibts den Fehler nicht, klappt reibungslos.
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!
 

X0r

BeitragMo, Okt 09, 2006 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
>Warum das denn? Flip aktualieiert das doch.
Eigentlich "vertauscht" er nur die Buffer.
 

#Reaper

Newsposter

BeitragMo, Okt 09, 2006 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann zu dem nur das Selbe sagen, wenn ich ein Fullscreen progg starte, während ein Windowed BB Progg läuft, gibts Probleme.. kA warum.. Sad
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

BIG BUG

BeitragMo, Okt 09, 2006 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Ganze liegt nicht explizit am Vollscreenmodus, sondern am Ändern der Auflösung. Wenn die Auflösung geändert wird, während ein BB-Windowsprogramm läuft, bleibt der Bildschirm schwarz.
Ist ein bekannter Bug, Abhilfe gibts meines Wissens keine...
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group