Msg mit Grafik ausgeben

  • Hallo,

    weiß jemand, wie man eine Messagebox mit einer Grafik ausgeben kann? Ich habe im Forum nichts gefunden.

    :huh:

    Gruß

  • Ich würde über GUI einfach eine eigene Messagebox bauen,mit GUICtrlCreateLabel den Text und mit GUICtrlCreatePic die Grafik.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Ne mit der normalen Windows-Msgbox wirst du das nicht schaffen..
    Kannst höchstens n Bild evtl drauf legen, aber das ist komplizierter als einfach direkt ne msgbox selber zu bauen ^ ^

  • Hallo AutoIT-Leihe,

    falls du das Icon meinst, dies kannst du über das Flag (1. Parameter) beeinflussen,

    Code
    Flag (dezimal) Resultierendes Icon Flag (hexadezimal) 
    0 (Kein Icon)  0x0 
    16 Stopp-Zeichen 0x10 
    32 Fragezeichen 0x20 
    48 Ausrufezeichen 0x30 
    64 Information (bestehend aus einem "i" in einem Kreis 0x40

    ,

    ansonsten must du dir deine eigene Gui erstellen so wie es Chip und ChaosKeks vorgeschlagen haben,

    mfg (Auto)Bert

  • Ich würde gerne einen Smiley unter dem Text setzen, aber das scheint dann etwas schwierig zu sein.

  • guck dir mal eine von den extended MsgBox-UDFs an, daraus kannst du dir ja die GUI klauen ^^
    OT: Übrigens: Wofür soll denn dein Name stehen? Hast du dir AutoIt nur geliehen?

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Den Namen würde ich gerne mittlerweile ändern, das ist aber nicht möglich.

    Danke für die Info, aber woher kann ich die Datei klauen?

  • Ich finde dazu kein Beitrag und komme leider nicht weiter.

    Kann mir jemand denn Bitte eine solche Messagebox basteln. 2 Zeilen Text reichen aus und ein Smiley unten drunter wäre nicht verkehrt.

    Gruß

  • Du musst eine eigenen GUI basteln ;) GUICreate, GUICtrlCreateLabel, GUICtrlCreateIcon / GUICtrlCreatePic und GUICtrlCreateButton wirst du wahrscheinlich brauchen.

  • Hallo,

    ich habe jetzt eine GUI gebastelt, brauche aber noch 2 Informationen:

    1. Wie funktioniert das goto Exit beim Drücken des Buttons, bzw. wie kann das Fenster geschlossen werden, wenn ich auf OK klicke
    2. Ist es möglich, die Grafik in die exe zu verpacken, damit die Grafik nicht irgendwo liegen muss sondern ein Paket bildet?

    In der Anlage befindet sich die Datei

    2 Mal editiert, zuletzt von AutoIT-Leihe (10. Juni 2009 um 10:16)

  • Hallo AutoIT-Leihe,

    ich würde das so machen.
    Mit FileInstall bindest Du das Bild in die exe.
    Beim Starten wird das Bild in das temp-Verzeichnis entpackt und aufgerufen.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    FileInstall("Smiley.jpg",@TempDir&"\")
    ; GUI
    GuiCreate("Achtung, Wichtige Information!!!", 320, 320)
    GuiSetIcon(@SystemDir & "\mspaint.exe", 0)

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

    ; CONTEXT MENU
    $contextMenu = GuiCtrlCreateContextMenu()
    GuiCtrlCreateMenuItem("Context Menu", $contextMenu)
    GuiCtrlCreateMenuItem("", $contextMenu) ;separator
    GuiCtrlCreateMenuItem("&Properties", $contextMenu)

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

    ; PIC
    GuiCtrlCreatePic(@TempDir&"\Smiley.jpg",20,20, 100,100)
    GuiCtrlCreateLabel(" ", 75, 1, 53, 15)
    GuiCtrlSetColor(-1,0xffffff)

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

    ; BUTTON
    $button = GuiCtrlCreateButton("OK", 110, 230, 100, 30)

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

    ; GUI MESSAGE LOOP
    GuiSetState()
    While 1
    $msg = GuiGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $button
    Exit
    EndSwitch
    WEnd

    [/autoit]

    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. ;)

  • Das mit dem Button hat funktioniert - vielen Dank.

    Mit dem Einbinden der Grafik hat das leider nicht.

    Kannst du mir bitte die vorgehensweise erläutern. Die Datei liegt bei mir unter temp und dort, wo die exe liegt. Mache ich die Grafik weg, ist sie dann auch nicht in der GUI enthalten.

  • also, die Grafik Smiley.jpg liegt laut meiner Annahme FileInstall("Smiley.jpg",@TempDir&"\")
    im selben Verzeichnis wie Dein Script.
    Beim Compilieren wird die Datei in die exe eingebunden und muß nirgendwo mehr liegen.
    Wenn Du dann Dein Programm startest wird die Datei in das angegebene Verzeichnis entpackt.
    In meinem Beispiel @TempDir

    Wenn Du Dein Script nur zum Testen aufrufst, wird die Datei einfach kopiert in das angegeben Verzeichnis.
    D.h. solange Du mit deiner au3-Datei experimentierst sollte die Datei auch weiterhin in dem selben Verzeichnis liegen.

    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 für die ausführliche und gute Erklärung, jetzt habe ich den Befehl verstanden.

    Rein theoretisch sollte das jetzt so sein, das beim compile STRG + F7 die Grafik (jpg) in die exe mit angebunden sein soll und beim Aufruf der exe die Datei in temp entpackt wird. So weit die Theorie - leider funtioniert das nicht.

    Wo sollte denn @TempDir&"\" liegen?

  • Hallo AutoIt-Leihe,

    das Beispiel von Schnuffel funktioniert wunderbar. @TempDir ist auf jedem System unterschiedlich, aber hier ein TestProg zur Anzeige:

    [autoit]

    MsgBox(0,"Pafd für @TempDir",@TempDir)

    [/autoit]


    Es ist aber unwichtig wie der Pfad von @TempDir lautet, wichtig ist nur: vor dem Kompilieren muss Smiley.jpg im gleichen Verzeichnis sein wie das Skript,

    mfg (Auto)Bert

  • Andernfalls musst Du den korrekten Pad zu Deiner Datei halt mit angeben bei FileInstall.
    Das geht auch.
    z.B. FileInstall("C:\Smiley.jpg",@TempDir&"\")

    PS eine Liste aller verwendbaren Makros gibt es in der Hilfe und Online: Link

    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 weiß wie es geht du musst die grafig nur zu icon umbennenen also smiley.jpg in smiley.ico bei mir hat das funktioniert