hilfe bei mini projekt

  • moin
    ich hab schon vor na weile dieses kleine projekt angefangen was ich aber bis jetz nicht fertig bekommen hab weil es bugs hat die ich mir nicht erklären kann
    das ist mal wieder so ein shutdown manager( :pinch: ja noch einer) aber mit mehr einstellungsmöglickeiten
    die beiden durchsuchen buttons funktioniert nicht daher konnte ich die funktionen nicht wirklich ausprobieren

    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

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

    $Form1 = GUICreate("Count-Function-Tool", 330, 300)
    $Tab = GUICtrlCreateTab ( 0, 0, 340, 250)
    $Start = GUICtrlCreateButton("Start", 130, 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]

    While 1
    Sleep( 75 )
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $filebutton
    $soundpath = FileOpenDialog("Sound Datei", @MyDocumentsDir, "*.mp3|*.wav", 3, "", $Form1)
    While 1
    Sleep( 50 )
    WEnd

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

    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]

    ContinueLoop
    Case $progstart
    $exepath = FileOpenDialog("Programm auswahl", @ProgramsDir, "*.exe", 3, "", $Form1)
    While 1
    Sleep( 50 )
    WEnd

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

    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]

    ContinueLoop
    Case $progkill
    GUICtrlSetData( $List1, "")
    _listbox ()
    ContinueLoop
    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")
    ContinueLoop
    EndIf
    EndIf

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

    GUISetState(@SW_HIDE, $Form1)
    _count()

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

    EndSwitch
    WEnd

    [/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] <> "Cou-Fu-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][/autoit] [autoit]

    $Radio1_r = GUICtrlRead($Radio1)
    $Radio2_r = GUICtrlRead($Radio2)
    $Radio3_r = GUICtrlRead($Radio3)

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

    Select
    Case $Radio1_r
    Beep(700, 500)
    Beep(700, 500)
    Sleep(500)
    Beep(700, 500)
    Beep(700, 500)
    MsgBox( 0, "t", "beep ende") ; entfernen
    Case $Radio2_r
    SoundPlay($soundpath, 1)
    Case $Radio3_r
    Sleep( 10 )
    MsgBox( 0, "t", "sound nichts ende") ; entfernen
    EndSelect

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

    $Radio4_r = GUICtrlRead($Radio4)
    $Radio6_r = GUICtrlRead($Radio6)

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

    Select
    Case $Radio4_r = $GUI_CHECKED
    Run($exepath)
    MsgBox( 0, "t", "prog start ende") ; entfernen
    Case $Radio5_r = $GUI_CHECKED
    WinKill($killprog)
    Case $Radio6_r = $GUI_CHECKED
    Sleep( 10 )
    MsgBox( 0, "t", "prog nichts ende") ; entfernen
    EndSelect

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

    $combochoice = GUICtrlRead($Combo1)

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

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

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

    Exit

    [/autoit]

    wo sind die fehler?
    mfg bulli

  • ich wüste nicht in wie fern mir das tutorial was bringen solte da ich es schon gemacht habe
    und die hilfe datei die ich in deutsch besitze ist sowas wie meine bibel beim scripten

  • Hallo,

    ich habe mal Deine $nMsg -Schleife so geändert das es funktioniert.
    Hauptproblem war in dem 'FileOpenDialog' Aufruf.

    Ich hoffe das ich Dir damit ein wenig weiterhelfen konnte.

    Spoiler anzeigen


    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()

    EndSwitch
    WEnd