Hallo Ihr Beiden,
Danke für die Rückmeldungen und "Blumen" - momentan fehlt mir ein wenig die Zeit "zum spielen" - werde es aber mal im Auge behalten.
Grüße
Hallo Ihr Beiden,
Danke für die Rückmeldungen und "Blumen" - momentan fehlt mir ein wenig die Zeit "zum spielen" - werde es aber mal im Auge behalten.
Grüße
Öhm - wenn ich wüsste wie ... wie oben erwähnt bin ich absolut "unerfahren".
Ziel ist es, die EXE dann über die Aufgabenplanung zu einem Zeitpunkt zu starten. Bisher hatte ich den normalen windows-Shutdownbefehl genutzt - so ist es "hübscher" - und man kann auch anhalten, wenn die Arbeit in 5min noch nicht fertig ist
So - ich denke so lasse ich das Skript erstmal - vielen Dank nochmal an Oscar.
Hier jetzt der Code - gegen Verbesserungsvorschläge habe ich natürlich nix
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.14.3
Author: myName
Script Function:
Shutdown-Timer 5min mit Anhalten, Weiterlaufen und Abbruch
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <AutoItConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <ColorConstants.au3>
Global $iSeconds = 60 * 5
Global $hGui = GUICreate('Shutdown-Timer', 385, 200, 192, 124, BitOR($WS_CAPTION,$WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS))
Global $Label1 = GUICtrlCreateLabel('Der PC fährt in', 20, 10, 125, 20)
GUICtrlSetFont(-1, 14, 400, 0, 'Arial')
Global $idTime = GUICtrlCreateLabel('', 150, 6, 70, 40)
GUICtrlSetFont(-1, 18, 700, 0, 'Arial')
GUICtrlSetColor(-1, $COLOR_RED)
Global $Label2 = GUICtrlCreateLabel('Minuten runter ...', 220, 10, 205, 20)
GUICtrlSetFont(-1, 14, 400, 0, 'Arial')
Global $ButStop = GUICtrlCreateButton(" Shutdown Timer anhalten ",20, 45, 340,35)
GUICtrlSetFont(-1, 10, 700, 0, 'Arial')
GUICtrlSetColor(-1, 0x00008B)
GUICtrlSetBkColor(-1, 0x87cefa)
Global $ButWeiter = GUICtrlCreateButton(" Timer weiterlaufen lassen ", 20, 90, 340, 35)
GUICtrlSetFont(-1, 10, 700, 0, 'Arial')
GUICtrlSetColor(-1, 0x006400)
GUICtrlSetBkColor(-1, 0x90EE90)
;Global $ButClose = GUICtrlCreateButton(@lf & " Programm abbrechen " & @lf & "und Fenster schließen", 170, 35, 180, 70)
;GUICtrlSetStyle($ButClose, BitOR($WS_TABSTOP, $BS_NOTIFY, $BS_OWNERDRAW, $BS_MULTILINE)) ; Set the ownerdrawn flag
Global $ButClose = GUICtrlCreateButton(" Programm abbrechen und Fenster schließen ", 20, 135, 340, 40)
GUICtrlSetFont(-1, 11, 700, 0, 'Arial')
GUICtrlSetColor(-1, $COLOR_Yellow)
GUICtrlSetBkColor(-1, $COLOR_Red)
AdlibRegister('_CountDown', 1000)
_CountDown()
GUISetState(@SW_SHOW)
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $ButStop
AdlibUnRegister('_CountDown')
Case $ButWeiter
AdlibRegister('_Countdown', 1000)
Case $ButClose
Exit
EndSwitch
WEnd
Func _CountDown()
Local $iMin, $iSec
$iSeconds -= 1
If $iSeconds < 0 Then
;~ Shutdown($SD_SHUTDOWN) ; Rechner herunterfahren
MsgBox(0,"Test","JEtzt würde der PC runterfahren",10)
Exit ; Programm beenden
EndIf
$iMin = Int($iSeconds / 60)
$iSec = Mod($iSeconds, 60)
GUICtrlSetData($idTime, StringFormat('%02i:%02i', $iMin, $iSec))
EndFunc
Alles anzeigen
Grüße
Im Post4 ist aber doch eine Lösung enthalten:
Mit den Zeilen hab es sogar ich mit Schrift- und Hintergrundfarbe hinbekommen
Global $ButClose = GUICtrlCreateButton(@lf & "Programm abbrechen " & @lf & "und Fenster schließen", 170, 35, 175, 70)
GUICtrlSetStyle($ButClose, BitOR($WS_TABSTOP, $BS_NOTIFY, $BS_OWNERDRAW, $BS_MULTILINE)) ; Set the ownerdrawn flag
;Global $ButClose = GUICtrlCreateButton(" Programm abbrechen und Fenster schließen ", 170, 35, 160, 60, $BS_MULTILINE )
GUICtrlSetFont(-1, 11, 700, 0, 'Arial')
GUICtrlSetColor(-1, $COLOR_RED)
GUICtrlSetBkColor(-1, $COLOR_Yellow)
Der Text wird jetzt zwar nicht automatisch zentriert und es ist ein wenig "gefummel" - für mich jedenfalls. Aber es geht.
Ob ich es so lasse oder die Buttons generell lieber einzeilig lasse, weis ich noch nicht - ich wollte es ja auch einfach nur "wissen".
Evtl. geht es ja auch noch eleganter ...
Grüße Sven
Dank Oscars Hilfe funktioniert es jetzt eigentlich ganz gut - nur bin ich jetzt auf das nächste Problem gestoßen und finde keine Lösung.
Das Färben der "normalen" Buttons funktioniert wie es soll. Jetzt habe ich aber einen Butten mit "Zeilenumbruch" - der Zeilenumbruch funktioniert solange bis ich die Farbe ändern will - dann schreibt er den Text in eine Zeile. Hier mein bisheriger Code - Zeile 25 soll die Schriftfarbe oder Hintergrundfarbe ändern, machts aber nicht
#include <AutoItConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <ColorConstants.au3>
Global $iSeconds = 30 * 1
Global $hGui = GUICreate('Zeitgesteuertes Ausschalten', 365,125, 192, 124, BitOR($WS_CAPTION,$WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS))
Global $Label1 = GUICtrlCreateLabel('Der PC fährt in', 20, 10, 105, 20)
GUICtrlSetFont(-1, 12, 400, 0, 'Arial')
Global $idTime = GUICtrlCreateLabel('', 140, 6, 70, 40)
GUICtrlSetFont(-1, 16, 700, 0, 'Arial')
Global $Label2 = GUICtrlCreateLabel('Minuten runter ...', 210, 10, 205, 20)
GUICtrlSetFont(-1, 12, 400, 0, 'Arial')
Global $ButStop = GUICtrlCreateButton(" Zeit anhalten ",20, 35, 130)
GUICtrlSetFont(-1, 8.5, 700, 0, 'Arial')
GUICtrlSetColor(-1, $COLOR_Yellow)
GUICtrlSetBkColor(-1, $COLOR_RED)
Global $ButWeiter = GUICtrlCreateButton(" Zeit weiterlaufen lassen ", 20, 70, 130)
Global $ButClose = GUICtrlCreateButton(" Programm abbrechen und Fenster schließen ", 190, 35, 160, 60, $BS_MULTILINE )
GUICtrlSetFont(-1, 11, 700, 0, 'Arial')
;GUICtrlSetColor(-1, $COLOR_RED)
; Setzt die Hintergrundfarbe des Label-Controls.
; Setzt die Schriftbarbe
;GUICtrlSetColor ( $ButClose, 0xFF00FF )
AdlibRegister('_CountDown', 1000)
_CountDown()
GUISetState(@SW_SHOW)
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $ButStop
AdlibUnRegister('_CountDown')
Case $ButWeiter
AdlibRegister('_Countdown', 1000)
Case $ButClose
Exit
EndSwitch
WEnd
Func _CountDown()
Local $iMin, $iSec
$iSeconds -= 1
If $iSeconds < 0 Then
;~ Shutdown($SD_SHUTDOWN) ; Rechner herunterfahren
MsgBox(0,"Test","JEtzt würde der PC runterfahren",10)
Exit ; Programm beenden
EndIf
$iMin = Int($iSeconds / 60)
$iSec = Mod($iSeconds, 60)
GUICtrlSetData($idTime, StringFormat('%02i:%02i', $iMin, $iSec))
EndFunc
Alles anzeigen
Du bist so gut zu mir
Ich habe jetzt eine Schaltfläche eingefügt, die beim anklicken den Countdown beenden soll - weis jetzt aber nicht so recht, wo bzw. wie ich diese Schaltfläche "abprüfen" kann - wäre schön, wenn Du mir hier auch "auf die Sprünge" helfen könntest - hier mein bisheriger code:
#include <AutoItConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $iSeconds = 20 * 1
Global $hGui = GUICreate('Zeitgesteuertes Ausschalten', 365,75, 192, 124, BitOR($WS_CAPTION,$WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS))
Global $Label1 = GUICtrlCreateLabel('Der PC fährt in', 20, 10, 105, 20)
GUICtrlSetFont(-1, 12, 400, 0, 'Arial')
Global $idTime = GUICtrlCreateLabel('', 140, 6, 70, 40)
GUICtrlSetFont(-1, 16, 700, 0, 'Arial')
Global $Label2 = GUICtrlCreateLabel('Minuten runter ...', 210, 10, 205, 20)
GUICtrlSetFont(-1, 12, 400, 0, 'Arial')
$Button1 = GUICtrlCreateButton(" automatischen ausschalten abbrechen ",20, 35)
AdlibRegister('_CountDown', 1000)
_CountDown()
GUISetState(@SW_SHOW)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
Func _CountDown()
Local $iMin, $iSec
$iSeconds -= 1
If $iSeconds < 0 Then
;~ Shutdown($SD_SHUTDOWN) ; Rechner herunterfahren
Exit ; Programm beenden
EndIf
$iMin = Int($iSeconds / 60)
$iSec = Mod($iSeconds, 60)
GUICtrlSetData($idTime, StringFormat('%02i:%02i', $iMin, $iSec))
EndFunc
Alles anzeigen
Vielen herzlichen Dank auch
Sven
Danke für die Erklärung ...
Hallo Oscar,
vielen Dank für die schnelle Antwort
Da kann ich dann "weiterbasteln" - bis zum nächsten Problem oder so
Grüße
Sven
Hallo Forum,
ich bin neu was Autoit angeht und auch mit Skripten habe ich nicht viel Erfahrung.
Ich möchte gern ein Countdown-Fenster, der nach z.B. 5 min ein Programm aufruft oder den PC runterfährt.....
Gefunden habe ich dieses Beispiel, mit dem es eigentlich geht - nur zählt er halt "nur" Sekunden runter - ich hätte aber gern mm:ss .... ich hab zwar noch jede Menge Beispiele gefunden, die aber zu umfangreich sind und ich verstehe diese auch nicht wirklich, um den "passenden Teil" zu übernehmen.
Hier der Code mit "reinen Sekunden":
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 223, 53, 192, 124)
$Label1 = GUICtrlCreateLabel("computer wird in ", 8, 14, 84, 17)
$Label2 = GUICtrlCreateLabel("Label2", 92, 14, 124, 17)
GUISetState(@SW_SHOW)
For $i = 160 To 0 Step -1
GUICtrlSetData($Label2, $i & " sek heruntergefahren")
If $i = 0 Then MsgBox(0, "Ausschalten", "Der PC fährt gleich runter ....")
Sleep(1000)
Next
;Shutdown(1)
msgbox (1, "Aus","jetzt würde der PC runterfahren ....")
Alles anzeigen
Ich würde gern statt der Sekunden die Anzeige in mm:ss - ohne viel drum rum usw. - so schwer kann es doch wohl nicht sein - leider bin ich zu unerfahren.
Vielen Dank schon mal und Grüße
Sven