Bild in gui

  • Also hab nen Script mit gui erstellt.

    In der gui war nen Bild. Als ich das ganze compiled habe war noch alles i.o , aber als ich das Bild aber gelöscht habe war das in der exe auch verschwunden.

    muss ich das irgendwie includen ?

    Einmal editiert, zuletzt von Fightfrog (2. Mai 2012 um 15:55)

  • Das ist einfach so. Wenn du das Bild in die EXE integrieren willst, solltest du dir mal FileInstall anschauen.

    Gruss Shadowigor

    EDIT: Da war wohl einer schneller

  • ok ich suche mal.... klingt irgendwie kompliziert :D

    EDIT: nen kleines Bsp. wäre toll, muss kein richtiges script sein nur ne Gedankenstütze.

    EDIT 2: so habs jetz einigermaßen verstanden, jetz weiß ich nur net was der zielpfad sein soll

    EDIT 3: alle versuche sind gescheitert :(

    2 Mal editiert, zuletzt von Fightfrog (1. Mai 2012 um 20:26)

  • Also machen wir mal FileInstall() ;)

    [autoit]

    FileInstall ( "source", "dest" [, flag] )

    [/autoit]


    "source" => Die Quelldatei. Darf keine Variable oder ein Rückgabewert sein! ;)
    "dest" => Die Zieldatei. Dorthin wird die Datei dann "entpackt".
    flag => Der/Die/Das Flag ^^. Wenn da eine 1 steht, wird eine bestehende Datei überschrieben, wenn 0, dann... nicht ;)

    Also... was macht FileInstall überhaupt?
    Dies bezieht sich auf ein kompiliertes Script!
    Wenn eine Datei mit FileInstall "aufgerufen" wird, wird die Datei mit in das Script gepackt.
    Beim Ausführen wird dann die Datei aus dem Script nach "dest" verschoben.

    Und jetzt ein Beispiel!
    Wir haben eine Bilddatei, welche Bild.bmp heißt, und auf C:\ liegt. Also ist der Pfad:
    C:\Bild.bmp
    Also sieht unsere Funktion bis jetzt so aus:

    [autoit]

    FileInstall("C:\Bild.bmp" ... )

    [/autoit]


    Dann brauchen wir "dest". Es empfiehlt sich, dafür den Ordner für temporäre Dateien zu verwenden, in AutoIt @TempDir.
    Wir sollten der Übersichtlichkeit halber den Dateinamen beibehalten.
    Also sieht's so aus:

    [autoit]

    FileInstall("C:\Bild.bmp",@TempDir & "\Bild.bmp")

    [/autoit]


    Zur Sicherheit setzen wir jetzt noch den Überschreiben-Flag.

    [autoit]

    FileInstall("C:\Bild.bmp",@TempDir & "\Bild.bmp",1)

    [/autoit]


    Wenn wir das kompilierte Script jetzt ausführen, zum Beispiel auf einem fremden PC, landet unser C:\Bild.bmp in @TempDir & "\Bild.bmp", also zum Beispiel unter C:\Users\chesstiger\AppData\Local\Temp\Bild.bmp.
    Und unter diesem Pfad können wir es dann aufrufen in unserem Script, zum Beispiel so:

    [autoit]

    GUICtrlSetImage($Button,@TempDir & "\Bild.bmp")

    [/autoit]

    Puh, das war lang^^

    lg chess

  • Thx habs jetz... binn dann schon selber bis FileInstall gekommen bis ich merkte das ich den Pfad dann auch in der gui ändern musste.

    Vielen dank an alle :D