2x GUI öffnen

  • Wenn ich mein Scipt mit GUI starte soll auch ein kleineres Fenster mit nem Bild kommen.
    Da kommt aber kein Fenster. -->

    Die Variable $Script ist mein 1 Script

    [autoit]

    If run ($script) Then
    GUICreate ("Test", 100, 150)
    Opt("GUIOnEventMode", 1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "guiCPLClose")
    WinSetOnTop("Donate", "", 1)
    GUISetState(@SW_SHOW)
    EndIf

    [/autoit]


    Edit: Vllt sollte ich sagen dass ich auch nen Fehler bekomm beim ausführen.

    C:\Dokumente und Einstellungen\Besitzer\Desktop\Autoit\Windoof Tools.au3(315,1) : ERROR: syntax error
    EndIf
    ^

    Einmal editiert, zuletzt von Hacksor (11. Februar 2009 um 14:14)

    • Offizieller Beitrag

    Wie soll man den mit dem Codeschnipsel was anfangen ? Denkst du wir sind Hellseher ?

    Edit:

    [autoit]

    If run ($script) Then

    [/autoit]


    Kann nicht funktionieren . Run gibt den PID des laufenden Programms zurück und nicht True oder False . Das kann man aber in der Hilfe nachlesen.

  • Immer wenn du kommst weiß ich wieder was für ein Noob ich in Auto It bin. :P
    Ich warum bekomm ich nen Endif error?
    Nach nem If muss ich doch dann au Endif setzen oder net?!

    Raupi : Was willste mit dem Rest. Ich will einfach dass wenn ich des Script(seht ihr net) ausführe, die Haupt GUI öffnet und halt dieses neue Fenster.
    Die Haupt GUI läuft tadellos.

    • Offizieller Beitrag

    Lese den Edit in meinem letzten Post.

  • Ah...ich wollte damit "sagen" dass wenn ich $script starte auch die 2te GUI aufgehen soll.
    Soll ich dann erst checken ob des Hauptfenster da is. Un wenn die Antwort dann "yes" is kann ich in dem fall sagen dass er dann des 2te Fenster machen soll oder wie?

  • als erstes solltest du den error raushaun^^
    wahrscheinlich hast du

    [autoit]


    If [Statement] = TRUE Then [Mach blabla]
    Endif

    [/autoit]


    Oder?

    Padmak

  • Nö^^...aber Error is weg habs geändert. Fenster geht tortzdem nicht auf. :(

    [autoit]

    WinWaitActive ("Windoof Tools")
    If (1) then
    GUICreate ("Donate", 100, 150)
    GUISetOnEvent($GUI_EVENT_CLOSE, "guiCPLClose")
    GUISetState(@SW_SHOW)
    GUICtrlCreateLabel("Test", 15, 15)

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

    While 1
    Sleep (1000)
    WEnd

    EndIf

    [/autoit]
  • [autoit]

    WinWaitActive ("Windoof Tools")
    If (1) then
    $hwnd_2 = GUICreate ("Donate", 100, 150)
    GUISetOnEvent($GUI_EVENT_CLOSE, "guiCPLClose")
    GUISetState(@SW_SHOW, $hwnd_2) ; !!!
    GUICtrlCreateLabel("Test", 15, 15)

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

    While 1
    Sleep (1000)
    WEnd

    EndIf

    [/autoit]


    LG
    Greenhorn


  • Ich seh immernoch kein Fenster. :(

    [autoit]

    WinWaitActive ("Windoof Tools.au3")
    If (1) then
    $hwnd2 = GUICreate ("Donate", 100, 150)
    GUISetOnEvent($GUI_EVENT_CLOSE, "guiCPLClose")
    GUISetState(@SW_SHOW, $hwnd2)
    GUICtrlCreateLabel("Test", 15, 15)

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

    While 1
    Sleep (1000)
    WEnd

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

    EndIf

    [/autoit]


    Immernoch net...bin ma off!
    Hoffe jemand weiß weiter. ;P

    [autoit]


    WinWaitActive ("Windoof Tools.au3")
    If (1) then
    $test1 = GUICreate ("Donate", 100, 150)
    GUISetOnEvent($GUI_EVENT_CLOSE, "guiCPLClose")
    GUISetState(@SW_SHOW, $test1)
    $test = GUICtrlCreateButton("test", 15, 15)
    GUICtrlSetOnEvent($test, "_run")

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

    While 1
    Sleep (1000)
    WEnd

    EndIf

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

    Func _run()
    Run (@WindowsDir & "\notepad.exe")
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von Hacksor (10. Februar 2009 um 21:15)

    • Offizieller Beitrag

    If (1) = Wenn dass Fenster aktiv ist (siehe 1 Zeile drüber) soll er dass 2 machen/öffnen!

    Dann bitte so:

    [autoit]

    If WinWaitActive(...) Then

    [/autoit]


    Aber selbst das ist überflüssig, da das Skript sowieso pausiert bis das Fenster aktiv ist. ;)

  • Die Funktionen Ende und Bestaetigen hab ich auchnoch erläutert. Ich hab auch kein Error mehr, aber die 2te GUI geht einfach net auf. :/


    [autoit]

    If WinWaitActive ("Windoof Tools.au3") Then
    GUICreate("---", 200, 200)
    WinSetOnTop("---","",1)

    GUISetState(@SW_SHOW)
    Opt("GUIOnEventMode", 1)

    GUICtrlCreateLabel("test!", 10, 15)

    $endbutton2 = GUICtrlCreateButton("Ende", 185, 170, 55)
    GUICtrlSetOnEvent($endbutton2, "Ende")

    $number1 = GUICtrlCreateEdit("", 10, 45, 50, 20, 0)

    $okbutton = GUICtrlCreateButton("Bestätigen", 75, 45, 65)
    GUICtrlSetOnEvent($okbutton, "Bestaetigen")

    While (1)
    Sleep (100)
    WEnd

    EndIf

    [/autoit]
    • Offizieller Beitrag

    Als erstes angewöhnen: Immer erst die GUI erstellen und dann bei Bedarf auf @SW_SHOW setzen. Ist viel übersichtlicher.
    Und das klappt tadellos. Hier mal mein Bsp. (notepad.exe ruft bei mir notepad++ auf).

    [autoit]

    #include <GUIConstants.au3>

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

    $gui = GUICreate('zweites Fenster')

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

    run('notepad.exe')
    WinWaitActive('[CLASS:Notepad++]')
    GUISetState(@SW_SHOW, $gui)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Hallo Haksor

    Du solltest:
    - Dir die Hilfe zu AutoIt wenigstens mal überfliegen
    - Dir Schleifen und If-Strukturen ansehen (ist wohl das notwendigste, wenn man etwas programmiert)
    - Dir beim Programmieren etwas Struktur im Script angewöhen
    - und Beispiele posten die (wenigstens zum Testen) komplett sind und nicht fehlende Funktionen enthalten.

    So könnte es mit etwas Fantasie (ich weiß bei dem Chaos ja nicht, was rauskommen soll) klappen:

    Spoiler anzeigen
    [autoit]

    Opt("GUIOnEventMode", 1)
    WinWaitActive("Dokument - WordPad")

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

    $gui = GUICreate("---", 400, 200)
    GUICtrlCreateLabel("test!", 10, 15)
    $endbutton2 = GUICtrlCreateButton("Ende", 185, 170, 55)
    GUICtrlSetOnEvent($endbutton2, "Ende")
    $number1 = GUICtrlCreateEdit("", 10, 45, 50, 20, 0)
    $okbutton = GUICtrlCreateButton("Bestätigen", 75, 45, 65)
    GUICtrlSetOnEvent($okbutton, "Bestaetigen")
    GUISetState(@SW_SHOW)

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

    ; damit das GUI sichtbar bleibt
    While (1)
    Sleep (100)
    WEnd

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

    Func Ende()
    GUIDelete($gui)
    Exit
    EndFunc

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

    Func Bestaetigen()
    EndFunc

    [/autoit]

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • BugFix : Ich will doch ne eigene Oberfläche. -> Notpad bekomm ich auch mit Run (@WinDir & "\notepad.exe") auf. :P

    @Micha he: Hab ich doch alles. Aber selbst wenn ich dein script direkt aufm pc starte kommt kein fenster. Unten läuft zwar der Prozess aber ich seh nix! :(

    Ich will dass wenn ich des 1. Fenster ("Windoof Tools") erstellt habe gleichzeitig bzw kurz danach ein 2tes Fenster erstellt werden soll, welches im Vordergrund ist. -> WinSetOnTop ("neues fenster", "", 1)

  • Und wo liegt genau das Problem?

    [autoit]

    $gui1 = GUICreate("GUI1", 100, 100)
    $gui2 = GUICreate("GUI2", 100, 100)
    GUISetState(@SW_SHOW, $gui1)
    GUISetState(@SW_SHOW, $gui2)
    sleep(2000)

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Danke an alle...habs glaub hinbekommen. Lösung wird natürlich nachher geposted aber erst muss ich des hier fertig machen! :P
    Bin in meinem Projekt wieder 1 Schritt weiter und hab wieder was gelernt!^^