2 dateien gleichzeitig/zusammen ausführen

  • Hallo.
    Habe mal wieder eine frage bzw ich bräuchte ein bisschen hilfe.
    Ich will ein script erstellen mit dem ich mehrere dateien als eine erstellen kann, als beispiel:
    Datei 1: .exe
    Datei 2: .jpg
    Fertige datei: .exe

    Es werden also die .jpg und die .exe dateien gleichzeitig/hintereinander geöffnet, meine fragen die ich jetzt gerne beantwortet hätte sind:

    #1 Ist sowas überhaupt möglich mit AutoIt?
    #2 Welche befehle sollte ich mir angucken?
    #3 Brauche ich viel erfahrung?
    #4 Wie kann ich etwas per Koda erstellen damit er nach einer bestimmten datei/pfad sucht, damit ich die gewünschten dateien den programm hinzufügen kann.

    Bedanke mich schonmal recht herzlich im voraus :)

    Einmal editiert, zuletzt von Caesar (22. Februar 2011 um 21:22)

  • Hallo caesar,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu deiner Frage: mit

    [autoit]

    FileInstall

    [/autoit]

    kannst du beim Complilieren Dateien in deine EXE einbinden, beim starten der EXE wird diese dann automatisch entpackt. Üblicherweise wird das genommen um benötigte Dateien mit aszuliefern,

    mfg autoBert

  • Danke schonmal für die antwort aber das ist nicht wirklich das wonach ich gesucht habe da ich ja jede datei mitschicken müsste, will aber ein script erstellen das die 2 dateien in eine datei verwandelt.

  • In Gefahr laufend Dich falsch zu verstehen, die Funktion

    [autoit]

    Fileinstall

    [/autoit]

    macht zumindest temporär aus X Dateien eine.
    Somit ist es eine Datei und bei Ausführung und nicht vorhanden sein wird die includierte Datei aus der Hauptexe entpackt.

    Was Du mit gleichzeitig meinst verstehe ich nicht, du willst doch nicht paint o.ä. per shellecute anwerfen und nebenher Dein Programm,
    sondern das jpg in dein Programm einbetten oder sehe ich das falsch?


    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Also wenn ich jetzt zum beispiel so etwas machen würde:

    [autoit]


    Fileinstall ("C:\Program Files\test.exe","C:\Program Files\Neuer Ordner\test.exe",1)

    [/autoit]


    Dann würde er mir alle dateien die ich vorher zusammen "gepackt" habe in den "Neuen Ordner" installieren?
    Vorausgesetzt ich habe natürlich alles andere gecodet, es geht mir aber jetzt erstmal nur um FileInstall.


    Zitat

    Was Du mit gleichzeitig meinst verstehe ich nicht, du willst doch nicht paint o.ä. per shellecute anwerfen und nebenher Dein Programm,
    sondern das jpg in dein Programm einbetten oder sehe ich das falsch?

    Ich möchte 2 dateien, sagen wir mal ein .jpg und eine .exe datei als eine datei "zusammenpacken" (.exe) und sobald die neue .exe datei gestartet wird soll sich das .jpg bild und die ursprünglich .exe öffnen.

    Hoffe du verstehst jetzt was ich meine :)

  • Also wenn ich jetzt zum beispiel so etwas machen würde:

    [autoit]

    Fileinstall ("C:\Program Files\test.exe","C:\Program Files\Neuer Ordner\test.exe",1)

    [/autoit]


    Dann würde er mir alle dateien die ich vorher zusammen "gepackt" habe in den "Neuen Ordner" installieren?

    nein, dann würde er dir die Datei Test.exe im "neuen Ordner" installieren.

    Ich möchte 2 dateien, sagen wir mal ein .jpg und eine .exe datei als eine datei "zusammenpacken" (.exe) und sobald die neue .exe datei gestartet wird soll sich das .jpg bild und die ursprünglich .exe öffnen.

    die JPG kannst du am einfachsten mit

    [autoit]

    shellexecute("C:\Program Files\Neuer Ordner\Dein.JPG","",@Scriptdir,"open")

    [/autoit]

    öffnen.
    Für EXEn geht zsätzlich auch

    [autoit]

    Run

    [/autoit]

    mfg autoBert

  • Ich denke er meint, man hat EIN EINZIGES Programm, wahrscheinlich eine .exe, und wenn man die startet soll sich ein Bild öffnen, seine Bild Datei, OHNE DAS SIE WOANDERS ABGESPEICHERT IST, sondern das sie sogesagt in der .exe mit drinsteckt. Wenn er das meint, dürfte ihm FileInstall nichts bringen.

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

  • Zitat

    Ich denke er meint, man hat EIN EINZIGES Programm, wahrscheinlich eine .exe, und wenn man die startet soll sich ein Bild öffnen, seine Bild Datei, OHNE DAS SIE WOANDERS ABGESPEICHERT IST, sondern das sie sogesagt in der .exe mit drinsteckt. Wenn er das meint, dürfte ihm FileInstall nichts bringen.

    Genau das mein ich, von daher waren die anderen sachen die mir vorgeschlagen wurden bis jetzt nutzlos, trotztdem danke.
    Ich hoffe jemand kann mir helfen.
    :)

  • Ich denke er meint, man hat EIN EINZIGES Programm, wahrscheinlich eine .exe, und wenn man die startet soll sich ein Bild öffnen, seine Bild Datei, OHNE DAS SIE WOANDERS ABGESPEICHERT IST, sondern das sie sogesagt in der .exe mit drinsteckt. Wenn er das meint, dürfte ihm FileInstall nichts bringen.

    Versteh ich nicht - FileInstall ist doch prädestiniert dafür. Der User bekommt das eh nicht mit, ob das (z.B.) im Temp Verzeichnis entpackt wird.
    Ich erkläre FileInstall nochmal.

    Stell dir vor, du hast eine Datei "Musikplayer.exe" und eine "Song.mp3". Die liegen beide (noch) auf deinem Desktop.
    Beide willst du in einer einzelnen Datei - zum Beispiel "SongPlayer.exe" zusammentun. Wenn der User diese "SongPlayer.exe" öffnet,
    sollen beide Dateien die darin "versteckt" sind, gestartet werden, ohne dass der User sieht, dass es nicht nur 1 Datei ist.

    Du erstellst eine SongPlayer.au3, und öffnest sie in SciTE.

    [autoit]

    FileInstall("C:\Users\DeinName\Desktop\MusikPlayer.exe", @TempDir & "\MusikPlayer.exe")
    FileInstall("C:\Users\DeinName\Desktop\Song.mp3", @TempDir & "\Song.mp3")

    [/autoit]

    Wenn du jetzt dein Script zu einer .exe Datei umwandelst, dann werden die beiden Datein "Musikplayer.exe" und "Song.mp3" in deine
    neue .exe Datei kopiert. Jetzt nehmen wir diese neue .exe, also die "SongPlayer.exe", und schicken Sie an einen Freund, welcher sie startet.

    Durch FileInstall werden die 2 eingebundenen Dateien nun -> automatisch <- nach @TempDir "entpackt",
    so wie es auch oben als Parameter angegeben wurde. Fertig...


    Wer es auf die harte Tour will: Man kann die Dateien auch binär einlesen, und dann selbst dahin schreiben, wo man sie haben will.
    Dann braucht man auch kein FileInstall: Fremddateien "includen" (ohne FileInstall)
    Oder du gibst die Daten als Ressourcen in einer .dll mit - Ich empfinde FileInstall allerdings als die angenehmste Variante.

  • Hab gedacht FileInstall funktioniert nur wenn man bereits die 2 dateien vorher hat da man ja den pfad angeben muss, auf jeden fall rechtherzlichen dank an alle die mir geholfen haben.
    :)

  • Okay, habe eine neue frage und zwar suche ich so etwas wie

    [autoit]

    FileSelectFolder

    [/autoit]

    aber als datei und nicht als ordner damit ich später die gewünschte datei in einer variable speichern kann.
    Wäre um schnelle hilfe dankbar damit ich schnell weiter coden kann ;)

  • [autoit]

    $message = "Choose your file/s"

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

    $file = FileOpenDialog ( $message, @WindowsDir & "\", "Alle (*.*)" , 1 + 4 )
    $file2 = FileOpenDialog ( $message, @WindowsDir & "\", "Alle (*.*)", 1 + 4 )

    [/autoit]

    Wenn ich das so machen würde und ich würde 2 dateien auswählen dann wären sie in der variable $file und $file2 gespeichert, richtg?

  • Die Dateien wären nicht gespeichrt, lediglich die Pfade zu den Dateien.

    Edit:
    Falls du vorhast was ich denke solltest du dir nochmal die Hilfe zu fileinstall anschauen:

    Zitat

    $source: Der Quellpfad der Datei, die eingebunden und kompiliert werden soll. Dieser muss ein reiner String sein; er kann keine Variable oder das Ergebnis eines Funktionsaufrufes sein. Es kann ein relativer Pfad (man verwendet .\ oder ..\ in dem Pfad) zu der Quelldatei (.au3) sein.

  • Was ist hier an diesem code falsch?

    [autoit]

    $message = "Choose your file/s"

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

    $file1 = FileOpenDialog ( $message, "C:\", "Alle (*.*)" , 1 + 4 )
    $file2 = FileOpenDialog ( $message, "C:\", "Alle (*.*)", 1 + 4 )

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

    $message2 = "Choose the directory you want to save the file"

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

    $file1 & $file2 = FileSaveDialog ($message2 , "C:\Users\Firstshoot\Desktop" , "(*.*)")

    [/autoit]

    Aus einem mir unerklärlichen grund will er die datei/n nicht speichern...

  • Zitat


    Schau dir die letzte Zeile genau an und überleg, was dort passieren würde, wenn es so gehen könnte (was es nicht tut, da es falsch ist;))

    Naja habe mir das ganze so vorgestellt:

    [autoit]

    $message = "Choose your file/s"

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

    $file1 = FileOpenDialog ( $message, "C:\", "Alle (*.*)" , 1 + 4 ) ; die erste datei
    $file2 = FileOpenDialog ( $message, "C:\", "Alle (*.*)", 1 + 4 ) ; die zweite datei

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

    $message2 = "Choose the directory you want to save the file"

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

    $file1 & $file2 = FileSaveDialog ($message2 , "C:\Users\Firstshoot\Desktop" , "(*.*)") ; datei 1 & 2 werden zusammen gespeichert

    [/autoit]

    Nicht böse gemeint aber deine antwort hilft mir nicht wirklich weiter da ich ja gedacht habe es wäre so richtig.

    Zitat

    Schau dir die letzte Zeile genau an und überleg, was dort passieren würde,

    Wie gesagt, habe gedacht es macht das was ich oben geschrieben habe, macht es aber anscheinen nicht, wie kann ich den fehler jetzt beheben?

  • Rückgabewert
    Erfolg: Gibt den kompletten Pfad der ausgewählten Datei zurück. Rückgabe mehrerer Dateien wie folgt: "Verzeichnis|Datei1|Datei2|..."
    Fehler: Setzt @error
    @error: 1 - Dateiauswahl fehlgeschlagen.
    2 - Ungültiger Dateifilter


    Daraus erkennen wir das FileSaveDialog nicht eine Datei speichert sondern nur den Pfad der ausgewählten Datei zurückgibt.

  • Zitat

    Daraus erkennen wir das FileSaveDialog nicht eine Datei speichert sondern nur den Pfad der ausgewählten Datei zurückgibt.

    Und welchen befehl kann ich dann benutzen um dateien zu speichern?

    Sorry für die ganzen dummen fragen...
    :(