Sithwecker doch es läuft nicht mit den Checkboxen

  • hallo ich will einen wecker im sithdesign machen das design is noch lange nich fertig doch
    ich hab en problem

    [autoit]


    #include <GUIConstants.au3>
    $sithpic = @MyDocumentsDir & "\DarthVaderROTSV1.jpg"
    opt("guioneventmode", 1)
    GUICreate("Sithwecker by sithlord95", 258, 312, 190, 125)
    GUISetBkColor(0x000000)
    $Input1 = GUICtrlCreateInput(@HOUR & ":" & @MIN & ":" & @SEC, 0, 24, 209, 21)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Label1 = GUICtrlCreateLabel("Trage die Weckzeit ein", 0, 0, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 120, 80, 17, 17)
    $Label4 = GUICtrlCreateLabel("Mit Messagebox?", 0, 56, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Label2 = GUICtrlCreateLabel("Mit Beeptönen?", 0, 104, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 120, 128, 17, 17)
    $Button1 = GUICtrlCreateButton("Starten", 48, 152, 161, 33, 0)
    $Pic1 = GUICtrlCreatePic($sithpic, 0, 192, 257, 116)
    GUISetState(@SW_SHOW)
    $input1 = 0
    $Checkbox1 = 0
    $Checkbox2 = 0
    GUISetOnEvent($Button1, "_start")
    guisetonevent($Checkbox1, "_check1")
    guisetonevent($Checkbox2, "_check2")

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

    While 1
    if $input1 = 1 and guictrlread($input1) = @HOUR & ":" & @MIN & ":" & @SEC Then
    if $Checkbox1 = 1 then
    msgbox(0, "Weckzeit", "Die Weckzeit ist erreicht :P ")
    elseif $Checkbox2 = 0 then
    sleep(1)
    endif
    if $Checkbox2 = 1 Then
    beep(1500,500)
    beep(2000,500)
    beep(1000,1000)
    ElseIf $Checkbox2 = 0 then
    sleep(1)
    endif
    endif
    wend

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

    func _start()
    $input1 = 1
    endfunc
    func _check1()
    $Checkbox1 = 1
    endfunc
    func _check2()
    $Checkbox2 = 1
    endfunc

    [/autoit]

    oder meine 2 möglichkeit die ich versucht habe

    [autoit]


    #include <GUIConstants.au3>
    $sithpic = @MyDocumentsDir & "\DarthVaderROTSV1.jpg"
    opt("guioneventmode", 1)
    GUICreate("Sithwecker by sithlord95", 258, 312, 190, 125)
    GUISetBkColor(0x000000)
    $Input1 = GUICtrlCreateInput(@HOUR & ":" & @MIN & ":" & @SEC, 0, 24, 209, 21)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Label1 = GUICtrlCreateLabel("Trage die Weckzeit ein", 0, 0, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 120, 80, 17, 17)
    $Label4 = GUICtrlCreateLabel("Mit Messagebox?", 0, 56, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Label2 = GUICtrlCreateLabel("Mit Beeptönen?", 0, 104, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 120, 128, 17, 17)
    $Button1 = GUICtrlCreateButton("Starten", 48, 152, 161, 33, 0)
    $Pic1 = GUICtrlCreatePic($sithpic, 0, 192, 257, 116)
    GUISetState(@SW_SHOW)
    $input1 = 0
    $Checkbox1 = 0
    $Checkbox2 = 0
    GUISetOnEvent($Button1, "_start")
    guisetonevent($Checkbox1, "_check1")
    guisetonevent($Checkbox2, "_check2")

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

    While 1
    if $input1 = 1 and guictrlread($input1) = @HOUR & ":" & @MIN & ":" & @SEC Then
    if guictrlread($Checkbox1) = 1 then
    msgbox(0, "Weckzeit", "Die Weckzeit ist erreicht :P ")
    endif
    if guictrlread($Checkbox2) = 1 Then
    beep(1500,500)
    beep(2000,500)
    beep(1000,1000)
    endif
    endif
    wend

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

    func _start()
    $input1 = 1
    endfunc
    func _check1()
    $Checkbox1 = 1
    endfunc
    func _check2()
    $Checkbox2 = 1
    endfunc

    [/autoit]

    das script lässt sich starten doch sofort dannach gibt windows einen fehler ka warum

    ich hoffei hr könnt mir helfen
    MFG SITHLORD95

    achja hier das bild damit ich das ding auch starten könnt
    in die eigenen dokumente packen bitte


    autoit.de/wcf/attachment/4454/

  • Du solltest Dich erstmal entscheiden, was Deine Variablen beinhalten sollen...
    so wird das nicht funktionieren:

    Spoiler anzeigen
    [autoit]

    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 120, 80, 17, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 120, 128, 17, 17)

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

    $Checkbox1 = 0
    $Checkbox2 = 0

    [/autoit]


    Nimm für Deine = 0 Variable einen anderen Namen...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • ich gebe Dir diesen Tip nicht ohne Grund.

    Probier doch erstmal aus, was ich damit meine. Dann kannst in Frage stellen.

    Du deklarierst in der Variable $Checkbox1 ein Control,
    Danach deklarierst Du die Variable (die selbe!!!) soll = 0 sein.
    Damit hat das Control keine Variable mehr
    ich habe das bemerkt und die Zuweisung der Variablen $Checkbox1/2 = 0 entfernt, dann lief Dein Script.

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Ha,
    das wäre die nächste Zeile....
    soweit war ich noch gar nicht :rofl:

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • danke RR04 du ahst mir wieder mal geholfen ihc verweschel das so gerne

    dir auch schnuffel ob wohl ich immern och ncih weiß was du meinstest^^


    achja noch ne frage warum funzt das nich
    wenn man auf das rote kreuz geht? das rote zum zumachen

    • Offizieller Beitrag

    Na dann kommt hier noch ein Tip, damit Du Dein Script debuggen kannst:
    Den Status der Checkboxen musst Du mit:

    [autoit]

    $Status = GUICtrlRead($Checkbox1)

    [/autoit]


    auslesen und dann mit:

    [autoit]

    If BitAnd($Status, $GUI_CHECKED) Then ...

    [/autoit]


    testen.

    Oder Kurzform:

    [autoit]

    If BitAnd(GUICtrlRead($Checkbox1), $GUI_CHECKED) Then ...

    [/autoit]
  • du solltest grundsätzlich für alles in Deinem Script,
    das Du später ansprechen/abfragen möchtest eine eigene Variable verwenden.

    Eine Variable ist für das Script der Platzhalter für (fast) alles( Werte, Controls, ...)

    Wenn Du willst, dann nenn Deine Variable $Lol....
    Was RR04 meint ist zwar nicht ganz so schlimm, kann so aber wie er schon richtig sagte auch nicht funktionieren.
    Es gibt nur eine "GuiSetOnEvent" Funktion!!!

    Zitat

    GUISetOnEvent($Button1, "_1")
    ;!!! GUISetOnEvent vs. GUICtrlSetOnEvent !!! nicht verwechseln
    GUISetOnEvent($Button2, "_2")

    Damit weist Du 3x hintereinander dieser Variable eine Funktion zu.
    Du benötigst aber ein GuiCtrlSetOnEvent.

    Edit:

    Zitat

    achja noch ne frage warum funzt das nich
    wenn man auf das rote kreuz geht? das rote zum zumachen


    Du musst in Deiner While-Schleife die Aktion "X-gedrückt" auch abfragen.
    Wenn Du Scite verwendest, dann tippe mal in ein leeres Script "setupgui" ein ( ohne ' " ') und drücke SPACE...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • häh oscar ich kann dir ncih ganz folgen könntest du das ins scirpt einbauen ich gucks mir dann an wie du das meinst momentan kann cih dir ncih folgen es läuft zwar doch ich bekomm weder msgbox noch beep

    [autoit]


    #include <GUIConstants.au3>
    $sithpic = @MyDocumentsDir & "\DarthVaderROTSV1.jpg"
    opt("guioneventmode", 1)
    GUICreate("Sithwecker by sithlord95", 258, 312, 190, 125)
    GUISetBkColor(0x000000)
    $Input1 = GUICtrlCreateInput(@HOUR & ":" & @MIN & ":" & @SEC, 0, 24, 209, 21)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Label1 = GUICtrlCreateLabel("Trage die Weckzeit ein", 0, 0, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 120, 80, 17, 17)
    $Label4 = GUICtrlCreateLabel("Mit Messagebox?", 0, 56, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Label2 = GUICtrlCreateLabel("Mit Beeptönen?", 0, 104, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 120, 128, 17, 17)
    $Button1 = GUICtrlCreateButton("Starten", 48, 152, 161, 33, 0)
    $Pic1 = GUICtrlCreatePic($sithpic, 0, 192, 257, 116)
    GUISetState(@SW_SHOW)
    $input1 = 0
    $Checkbox1 = 0
    $Checkbox2 = 0
    GUIctrlSetOnEvent($Button1, "_start")
    guictrlsetonevent($Checkbox1, "_check1")
    guictrlsetonevent($Checkbox2, "_check2")

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

    While 1
    if $input1 = 1 and guictrlread($input1) = @HOUR & ":" & @MIN & ":" & @SEC Then
    if guictrlread($Checkbox1) = 1 then
    msgbox(0, "Weckzeit", "Die Weckzeit ist erreicht :P ")
    endif
    if guictrlread($Checkbox2) = 1 Then
    beep(1500,500)
    beep(2000,500)
    beep(1000,1000)
    endif
    endif
    wend

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

    func _start()
    $input1 = 1
    endfunc
    func _check1()
    $Checkbox1 = 1
    endfunc
    func _check2()
    $Checkbox2 = 1
    endfunc

    [/autoit][autoit][/autoit][autoit][/autoit]
    • Offizieller Beitrag

    Hier mal dein Script ein bischen lauffähiger ;)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $sithpic = @MyDocumentsDir & "\DarthVaderROTSV1.jpg"
    Opt("guioneventmode", 1)
    Global $check1 = 0, $check2 = 0, $Start = 0
    GUICreate("Sithwecker by sithlord95", 258, 312, 190, 125)
    GUISetBkColor(0x000000)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $Input1 = GUICtrlCreateInput(@HOUR & ":" & @MIN & ":" & @SEC, 0, 24, 209, 21)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Label1 = GUICtrlCreateLabel("Trage die Weckzeit ein", 0, 0, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 120, 80, 17, 17)
    $Label4 = GUICtrlCreateLabel("Mit Messagebox?", 0, 56, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Label2 = GUICtrlCreateLabel("Mit Beeptönen?", 0, 104, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 120, 128, 17, 17)
    $Button1 = GUICtrlCreateButton("Starten", 48, 152, 161, 33, 0)
    $Pic1 = GUICtrlCreatePic($sithpic, 0, 192, 257, 116)
    GUISetState(@SW_SHOW)
    GUICtrlSetOnEvent($Button1, "_start")
    GUICtrlSetOnEvent($Checkbox1, "_check1")
    GUICtrlSetOnEvent($Checkbox2, "_check2")

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

    While 1
    If $Start = 1 And GUICtrlRead($Input1) = @HOUR & ":" & @MIN & ":" & @SEC Then
    If $check1 = 1 Then
    MsgBox(0, "Weckzeit", "Die Weckzeit ist erreicht :P ")
    ElseIf $check1 = 0 Then
    Sleep(1)
    EndIf
    If $check2 = 1 Then
    Beep(1500, 500)
    Beep(2000, 500)
    Beep(1000, 1000)
    ElseIf $check2 = 0 Then
    Sleep(1)
    EndIf
    EndIf
    WEnd

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

    Func _start()
    $Start = 1
    EndFunc ;==>_start
    Func _check1()

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

    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
    $check1 = 1
    Else
    $check1 = 0
    EndIf
    EndFunc ;==>_check1
    Func _check2()
    If BitAND(GUICtrlRead($Checkbox2), $GUI_CHECKED) = $GUI_CHECKED Then
    $check2 = 1
    Else
    $check2 = 0
    EndIf
    EndFunc ;==>_check2
    Func _Exit()
    Exit
    EndFunc

    [/autoit]
  • raupi du bist meine rettung^^ ich würde nur ncoh gerne wissen wie man das script mit dem X ausmachdas rote ihr wisst schon^^

    und wie man vielleicht seine eigene musik zum wecken anmachen könnte?

    achja und wiek ann man ein bild zum beispiel ins cirpt einabuen so das ich das bild ncih immer mitschicken muss geht das?

    • Offizieller Beitrag

    Das hab ich doch schon eingebaut :thumbup:

    Edit für den Sound schau mal in der Hilfe bei SoundPlay

    • Offizieller Beitrag

    So ungefähr:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    $sithpic = @MyDocumentsDir & "\DarthVaderROTSV1.jpg"
    Opt("guioneventmode", 1)

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

    GUICreate("Sithwecker by sithlord95", 258, 312, 190, 125)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_ende")
    GUISetBkColor(0x000000)
    $Input1 = GUICtrlCreateInput(@HOUR & ":" & @MIN & ":" & @SEC, 0, 24, 209, 21)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Label1 = GUICtrlCreateLabel("Trage die Weckzeit ein", 0, 0, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 120, 80, 17, 17)
    $Label4 = GUICtrlCreateLabel("Mit Messagebox?", 0, 56, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Label2 = GUICtrlCreateLabel("Mit Beeptönen?", 0, 104, 212, 17)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 120, 128, 17, 17)
    $Button1 = GUICtrlCreateButton("Starten", 48, 152, 161, 33, 0)
    $Pic1 = GUICtrlCreatePic($sithpic, 0, 192, 257, 116)
    GUISetState(@SW_SHOW)
    GUICtrlSetOnEvent($Button1, "_start")
    $start = 0
    While 1
    If $start = 1 And GUICtrlRead($Input1) = @HOUR & ":" & @MIN & ":" & @SEC Then
    If BitAND(GUICtrlRead($Checkbox2), $GUI_CHECKED) Then
    Beep(1500, 500)
    Beep(2000, 500)
    Beep(1000, 1000)
    EndIf
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) Then
    MsgBox(0, "Weckzeit", "Die Weckzeit ist erreicht :P ")
    EndIf
    $start = 0
    GUICtrlSetState($Button1, $GUI_ENABLE)
    EndIf
    Sleep(50)
    WEnd

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

    Func _start()
    GUICtrlSetState($Button1, $GUI_DISABLE)
    $start = 1
    EndFunc ;==>_start

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

    Func _ende()
    Exit
    EndFunc ;==>_ende

    [/autoit]

    Edit: Mist, schon wieder zu spät... :rolleyes:

    • Offizieller Beitrag

    @ Oscar , aber sowas von zu spät 8)

  • ja, aber nur bei Compilierten Files...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)