noch ein shutdownmanager

  • moin,

    ich hab mal zur übung einen shutdownmanager gescriptet der bisle mehr kann
    richtig testen konnte ich ihn noch nicht
    eigentlich wolte ich noch eine anzeige machen wo man nachgucken kann wie lange es noch dauert aber ich hab keine gute idee wie ich das ohne gdi+ "schön" realisieren kann weil ich noch kein erfahrung in gdi+ hab

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.6.0
    Author: Bulli
    @ http://www.Autoit.de
    Script Function:
    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ListBoxConstants.au3>
    #include <ComboConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Dim $killprog, $List1, $Form2, $button, $time, $soundpath

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate("Count-Function-Tool", 330, 300)
    $Tab = GUICtrlCreateTab ( 0, 0, 340, 250)
    $Start = GUICtrlCreateButton("Start", 128, 260, 75, 25, $WS_GROUP)

    [/autoit] [autoit][/autoit] [autoit]

    $Tab1 = GUICtrlCreateTabItem("Zeiteinstellung")
    $inputhour = GUICtrlCreateInput("00", 30, 42, 75, 60)
    GUICtrlSetFont(-1, 30, 400, 0, "Sylfaen")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0x000000)
    $updownhour = GUICtrlCreateUpdown($inputhour)
    GUICtrlSetLimit($updownhour, 23)

    [/autoit] [autoit][/autoit] [autoit]

    $inputmin = GUICtrlCreateInput("00", 30, 100, 75, 60)
    GUICtrlSetFont(-1, 30, 400, 0, "Sylfaen")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0x000000)
    $updownmin = GUICtrlCreateUpdown($inputmin)
    GUICtrlSetLimit($updownmin, 59)

    [/autoit] [autoit][/autoit] [autoit]

    $inputsek = GUICtrlCreateInput("01", 30, 158, 75, 60)
    GUICtrlSetFont(-1, 30, 400, 0, "Sylfaen")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0x000000)
    $updownsek = GUICtrlCreateUpdown($inputsek)
    GUICtrlSetLimit($updownsek, 59 , 1)

    [/autoit] [autoit][/autoit] [autoit]

    $Label1 = GUICtrlCreateLabel("Stunden", 110, 56, 44, 17)
    $Label2 = GUICtrlCreateLabel("Minuten", 110, 112, 42, 17)
    $Label3 = GUICtrlCreateLabel("Sekunden", 110, 168, 53, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $Tab2 = GUICtrlCreateTabItem("Soundfunktion")
    $filebutton = GUICtrlCreateButton("Durchsuchen", 170, 104, 75, 25, $WS_GROUP)
    $Radio1 = GUICtrlCreateRadio("Piep-Ton", 30, 72, 80, 17)
    $Radio3 = GUICtrlCreateRadio("nichts", 30, 40, 113, 17)
    $Radio2 = GUICtrlCreateRadio("Eigener Sound", 30, 104, 100, 17)
    GUICtrlSetState($Radio3, $GUI_CHECKED)

    [/autoit] [autoit][/autoit] [autoit]

    $Tab3 = GUICtrlCreateTabItem("Programmfunktion")
    $List1 = GUICtrlCreateList( "", 30, 150, 250, 100)
    $progstart = GUICtrlCreateButton("Durschsuchen", 170, 72, 75, 25, $WS_GROUP)
    $progkill = GUICtrlCreateButton("Aktualisieren", 170, 104, 75, 25, $WS_GROUP)
    $Radio4 = GUICtrlCreateRadio("Programm ausführen", 30, 72, 113, 17)
    $Radio5 = GUICtrlCreateRadio("Programm beenden", 30, 104, 113, 17)
    $Radio6 = GUICtrlCreateRadio("nichts", 30, 40, 113, 17)
    GUICtrlSetState($Radio6, $GUI_CHECKED)

    [/autoit] [autoit][/autoit] [autoit]

    $Tab4 = GUICtrlCreateTabItem("Startoptionen")
    $Combo1 = GUICtrlCreateCombo("nichts", 30, 40, 145, 25)
    GUICtrlSetData($Combo1, "Herunterfahren|Neu starten|Abmelden|Energie sparen", "nichts")

    [/autoit] [autoit][/autoit] [autoit]

    $Tab5 = GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW, $Form1)

    [/autoit] [autoit][/autoit] [autoit]

    _listbox ()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $filebutton
    $soundpath = FileOpenDialog("Sound Datei", @MyDocumentsDir & "\", "Soundfile (*.mp3; *.wav)", 3)
    If @error Then
    Msgbox(0, "Fehler", "Es wurde keine Datei ausgewählt oder sie hat ein falsches Format")
    GUICtrlSetState( $Radio3, $GUI_CHECKED)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $progstart
    $exepath = FileOpenDialog("Programmauswahl", @ProgramsDir, "(*.exe)", 3)
    If @error Then
    Msgbox(0, "Fehler", "Es wurde keine Datei ausgewählt oder sie hat ein falsches Format")
    GUICtrlSetState( $Radio4, $GUI_CHECKED)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $progkill
    GUICtrlSetData( $List1, "")
    _listbox ()

    [/autoit] [autoit][/autoit] [autoit]

    Case $Start
    $Radio5_r = GUICtrlRead($Radio5)
    If $Radio5_r = $GUI_CHECKED Then
    If GUICtrlRead( $List1 ) = "0" Then
    MsgBox( 0, "Fehler", "In der Programm beenden Funktion wurde nichts ausgewählt")
    EndIf
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_HIDE, $Form1)
    _count()
    _functions ()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _listbox ()

    [/autoit] [autoit][/autoit] [autoit]

    $Liste = _WinListVisible()
    For $i = 0 To UBound($Liste) - 1
    GUICtrlSetData($List1, $Liste[$i][0])
    Next

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _WinListVisible()
    Local $WinListVisible[1][2]
    Local $Count = 0
    $WinList = WinList()
    For $i = 1 To $WinList[0][0]
    If BitAND(WinGetState($WinList[$i][1]), 2) Then
    If $WinList[$i][0] <> "" And $WinList[$i][0] <> "Count-Function-Tool" Then
    $Count += 1
    ReDim $WinListVisible[$Count][2]
    $WinListVisible[$Count - 1][0] = $WinList[$i][0]
    $WinListVisible[$Count - 1][1] = $WinList[$i][1]
    EndIf
    EndIf
    Next
    Return $WinListVisible
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _count()

    [/autoit] [autoit][/autoit] [autoit]

    $hour = GUICtrlRead($inputhour)
    $min = GUICtrlRead($inputmin)
    $sek = GUICtrlRead($inputsek)
    $time = ($hour * 360000) + ($min * 60000) + ($sek * 1000)
    Sleep($time)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _functions ()

    [/autoit] [autoit][/autoit] [autoit]

    $Radio1_r = GUICtrlRead($Radio1)
    $Radio2_r = GUICtrlRead($Radio2)
    $Radio3_r = GUICtrlRead($Radio3)
    $Radio4_r = GUICtrlRead($Radio4)
    $Radio6_r = GUICtrlRead($Radio6)
    $combochoice = GUICtrlRead($Combo1)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Select
    Case $Radio1_r = $GUI_CHECKED
    Beep(700, 500)
    Beep(700, 500)
    Sleep(500)
    Beep(700, 500)
    Beep(700, 500)
    Case $Radio2_r = $GUI_CHECKED
    SoundPlay($soundpath, 1)
    Case $Radio3_r = $GUI_CHECKED
    Sleep( 10 )
    EndSelect

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Select
    Case $Radio4_r = $GUI_CHECKED
    Run($exepath)
    Case $Radio5_r = $GUI_CHECKED
    $winclose = WinKill($killprog)
    If $winclose = 0 Then MsgBox( 0, "t", "fehler")
    Case $Radio6_r = $GUI_CHECKED
    Sleep( 10 )
    EndSelect

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Select
    Case $combochoice = "nichts"
    Exit
    Case $combochoice = "Herunterfahren"
    Shutdown(1)
    Exit
    Case $combochoice = "Neu starten"
    Shutdown(2)
    Exit
    Case $combochoice = "Abmelden"
    Shutdown(0)
    Exit
    Case $combochoice = "Energie sparen"
    Shutdown(32)
    Exit
    EndSelect

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Exit

    [/autoit]


    Edit: bitte bugs melden und eine kleine kritik schreiben
    mfg bulli

    Einmal editiert, zuletzt von Bulli (28. Juni 2010 um 20:57)

  • Lieg vlt, daran, dass es soviele schon gibt...

    Aber für AnfängerSkript: Nicht schlecht :thumbup: , sogar mit sounds 8) .
    Also wenn jeder Skript von dir solche Extras bekommt, dann wäre das mal zum :party: .

    Nur keine Hektik - das Leben ist stressig genug

  • ich seh irgendwie den Sinn nicht, wofür man das gebrauchen könnte, wenn ich mein PC Runterfahren will starte ich nicht noch ein extra Programm

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Gleiche Meinung wie Darter. Wieso soll ich ein Programm starten und da hin und her klicken, wenn es auch schneller geht? Alt+F4 und Enter, schon fährt mein Pc runter.

  • nehmen wir an du hast ein termin und must schnell weg wilst aber vorher noch ne cd brennen
    also gibts du die geschätzte zeit ein und stellst ein das er dan das programm ausschalten soll und weil du länger weg bist noch den pc runterfährt

    zum programm starten hab ich jetz kein bsp aber irgendwer wirds wohl brauchen^^
    manche kennen solche situationen manche nicht

    aber vieleicht lassen wir die frage mal weg ob das prog sinnvoll ist oder nicht weil es nur eine script übung sein solte ;)

  • Ich würde noch einstellen das man es abbrechen kann mit einem hotkey und das die zeit oben links angezeigt wird:

    [autoit]

    ToolTip("Verbleibende Zeit: " & $Time,0,0)

    [/autoit]


    Und wenn man dann doch kein bock mehr hat F8 zum abbrechen ^^

  • ja das hab ich auch eigentlich noch vor aber wärend sleep kann ich keine zeitanzeige erstellen
    da weis ich noch nicht so ganz wie ich das mache
    vl. ein extra script was includiert wird worin allein die sleep funktion ist :?: ;)

  • MAch das so:

    [autoit]


    $timer = TimerInit() ;Legt eine Variable fest die man nacher braucht um den Zeitunterschied festzustellen
    Do
    ToolTip("Verbleibende Zeit: " & $zeit-Round(TimerDiff($timer)/1000),0,0) ;Round (Rundet die zahl wenn es eine kommerzahl ist) TimerDiff($timer/1000) zählt den Zeitunterschied runter in 1000 millisekunden
    Until TimerDiff($timer)>$time ; wenn er unter 0 ist dann geht der script weiter
    ToolTip("")

    [/autoit]


    Wenn ich mich irre bitte korrigiert mich ^^
    dann musste noch was umschreiben bei deinem script
    oder hat wer eine bessere ideee? ^^

    Einmal editiert, zuletzt von EpicWorld (8. Juli 2010 um 23:50)