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
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.6.0
Author: Bulli
@ http://www.Autoit.de
Script Function:
#ce ----------------------------------------------------------------------------
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ListBoxConstants.au3>
#include <ComboConstants.au3>
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)
$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)
$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)
$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)
$Label1 = GUICtrlCreateLabel("Stunden", 110, 56, 44, 17)
$Label2 = GUICtrlCreateLabel("Minuten", 110, 112, 42, 17)
$Label3 = GUICtrlCreateLabel("Sekunden", 110, 168, 53, 17)
$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)
$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)
$Tab4 = GUICtrlCreateTabItem("Startoptionen")
$Combo1 = GUICtrlCreateCombo("nichts", 30, 40, 145, 25)
GUICtrlSetData($Combo1, "Herunterfahren|Neu starten|Abmelden|Energie sparen", "nichts")
$Tab5 = GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW, $Form1)
_listbox ()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
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
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
Case $progkill
GUICtrlSetData( $List1, "")
_listbox ()
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
GUISetState(@SW_HIDE, $Form1)
_count()
_functions ()
EndSwitch
WEnd
Func _listbox ()
[/autoit] [autoit][/autoit] [autoit]$Liste = _WinListVisible()
For $i = 0 To UBound($Liste) - 1
GUICtrlSetData($List1, $Liste[$i][0])
Next
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
Func _count()
[/autoit] [autoit][/autoit] [autoit]$hour = GUICtrlRead($inputhour)
$min = GUICtrlRead($inputmin)
$sek = GUICtrlRead($inputsek)
$time = ($hour * 360000) + ($min * 60000) + ($sek * 1000)
Sleep($time)
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)
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
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
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
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Exit
[/autoit]
Edit: bitte bugs melden und eine kleine kritik schreiben
mfg bulli