Konvertierung von Dateien (Speichern unter...)

  • Hallo,
    ich möchte ein Script schreiben, dass bestimmte Dateien mit einem bestimmten Programm geöffnet werden und dann von dem Programm unter einem anderen Format wieder abgespeichert werden soll.

    ....

    Spoiler anzeigen

    (Ich habe solche Schritte in dieser Reihenfolge gewählt, weil es mit meinem Wissen so möglich war)
    Teilschritte
    1. suche nach .exe um das bestimmte Programm zu starten
    2. Ordnersuche, wo die .xxx -Dateien drin sind
    3. alle *.xxx Dateien auswählen

    Ich habe noch viele Abfragen für mich drin, die später herausgenommen werden. Der Kunde soll ja nicht später mit MsgBoxen überschüttet werden.
    Quellcode:

    [autoit]


    dim $CAD6, $var, $msg, $dir, $msg1, $msg2, $msg3, $filesearch, $file

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

    $msg = "Bitte starten Sie das bestimmte Programm."
    $msg1 = "Wurde gewählt:"
    $msg2 = "Keine Auswahl"
    $msg3 = "Info"

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

    ; Teil 1
    $var = FileOpenDialog($msg, "D:\Progamme\bestimmteProgrammOrdner", "Anwendung (*.exe)", 1 + 2 )

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

    If @error Then
    MsgBox(48, $msg2, "Keine Datei(en) ausgewählt.")
    Else
    MsgBox(48, $msg1, "Es wurde" & $var & " ausgewählt.")

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

    Run($var)

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

    WinWaitActive("bestimmte Programm", "", 3)

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

    If WinExists("bestimmte Programm") then

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

    MsgBox (48, $msg3, "bestimmte Programm.exe wurde gestartet", 5)
    Else
    MsgBox (48, $msg3, "bestimmte Programm wurde nicht gestartet", 5)
    EndIf

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

    EndIf

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

    ; Teil 2.
    $dir = FileSelectFolder("Ordner wählen", "")

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

    If @error Then
    MsgBox(48,"Keine Auswahl","Kein Ordner ausgewählt.")
    Else
    MsgBox(48,"OrdnerAuswahl.","Es wurde " & $dir & " ausgewählt.")
    EndIf

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

    ; Teil 3.
    $filesearch = FileFindFirstFile("*.xxx")

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

    If $filesearch = -1 Then
    MsgBox(0, "Fehler", "Es wurden keine Dateien/Verzeichnisse gefunden, die zu dem Suchmuster passen")
    Exit
    EndIf

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

    While 1
    $file = FileFindNextFile($filesearch)
    If @error Then ExitLoop

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

    MsgBox(48, "Datei:", $file)
    WEnd

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

    FileClose($filesearch)

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

    Exit

    [/autoit]


    Teil 4 usw. fehlen noch, weil ich bei Teil 3 hänge und nicht weiß, wie ich an Teil 4 rangehen soll. :pinch:
    Bei Teil 3 würde ich gern den Ordnerpfad ($dir, der in Teil 2 ausgewählt wurde) angeben.
    Zur Zeit sucht das Script die .xxx-Dateien im Ordner, wo das Script ausgeführt wird.
    $filesearch = FileFindFirstFile($dir, "*.xxx") wollte ich so reinsetzen, aber das ist wohl nicht die richtige Stelle. :huh:

    Teil 4 wäre dann, dass ich die Dateien an das Programm übergebe und das Programm sie dann unter dem Format .dwg speichert.
    Ich habe mal mit Window Info im Programm das "Speichern unter" ausgewählt. Ich denke mir, dass dort schon der Ansatz zur Lösung drinsteckt.
    Aber mit meinem jetztigen Wissen kann ich noch nix mit Window Info anfangen.

    Window Info

    >>>> Control <<<<
    Class: ComboBox
    Instance: 2
    ClassnameNN: ComboBox2
    Advanced (Class): [CLASS:ComboBox; INSTANCE:2]
    ID: 1136
    Text:
    Position: 86, 213
    Size: 233, 21
    ControlClick Coords: 156, 13
    Style: 0x50010203
    ExStyle: 0x00000004
    Handle: 0x0012064A

    >>>> Mouse <<<<
    Position: 455, 594
    Cursor ID: 2
    Color: 0x0A246A

    >>>> StatusBar <<<<

    >>>> Visible Text <<<<
    Spe&ichern in:
    Test
    FolderView
    Datei&name:
    Blatt1.dwg
    Datei&typ:
    DWG Format (*.DWG)
    &Speichern
    Abbrechen
    &Hilfe
    Dialog
    Zeichnungsbild :
    &Zeichnungsbeschreibung :
    &Grafik in die Zeichnung kopieren
    Datei: Blatt1 - Datum: 22.10.2008 - Uhrzeit: 13:02:31


    >>>> Hidden Text <<<<
    Sch&reibgeschützt öffnen
    &Vorschau anzeigen


    Ich hoffe, ihr könnt mir helfen, auch wenn es nur ein Link ist.
    Vielen Dank für die Aufmerksamkeit.

    Xethria

    EDIT:
    Weiterbearbeitung hier: (da sehr ähnliches Thema)
    [ offen ] Konvertertool - Ordner übergreifend sauber Dateien suchen und auflisten

    2 Mal editiert, zuletzt von Xethria (23. Oktober 2008 um 12:20)

    • Offizieller Beitrag

    Ich denke, dass Software in dem Bereich evtl. Kommandozeilenparameter für soetwas haben könnte (und sollte!). Also sowas in der Art Programm.exe file.xyz -out file.abc, um die Umwandlung durchzuführen. Dann könnte man es ohne Fenster oder sonstige Interaktion machen...

    peethebee

  • Mit Kommandozeilenparameter habe ich noch fast gar nicht gearbeitet. Ich wüsste nicht, wie ich darangehen soll.
    Du sprichst doch von sozusagen 3 Argumenten, die dem Script übergeben werden oder?

    • Offizieller Beitrag

    Ich meine, dass die Software, mit der du es öffnen und wieder speichern willst, vielleicht auch Parameter hat, mit der man ihr die Datei direkt mitgeben kann (das auf jeden Fall), aber vielleicht auch gleich in ein anderes Format speichern lassen kann. "Programm parameter command line" in Google könnte dir helfen :).

    peethebee

  • Hier kann ich nur wieder mal auf die Hilfe verweisen -> "Using AutoIt" -> "Running Scripts"
    Dort solltest du alle Informationen erhalten die du brauchst um dein Script dementsprechend anzupassen das es mit Kommandozeilenparametern läuft :)

  • Hier kann ich nur wieder mal auf die Hilfe verweisen -> "Using AutoIt" -> "Running Scripts"
    Dort solltest du alle Informationen erhalten die du brauchst um dein Script dementsprechend anzupassen das es mit Kommandozeilenparametern läuft :)

    Ich weiß nicht, wo ich das finden kann, was du mir hier vorschlägst.

    Entwerder suche ich nicht richtig, oder es gibt nix.
    Programm: Technobox CAD6

    Einmal editiert, zuletzt von Xethria (22. Oktober 2008 um 14:13)

  • Im Hauptverzeichnis von AutoIt liegt eine Hilfedatei die AutoIt.chm heißt, wenn du die öffnest folgst du einfach diesem Pfad: "AutoIt" -> "Using AutoIt" -> "Running Scripts"
    In der Mitte des Textes steht dann etwas über "Command Line Parameters"

    Falls du die deutsche Hilfe benutzt:

    "AutoIt" -> "AutoIt verwenden" -> "Kommandozeilenparameter"

  • bluelamp du hast was falsch verstanden nicht sie soll ihr script für cmdline parameter benutzbar machen sondern schauen das ihr konverter sowas hat:

    @xehtria im endeffekt meint pee nur sowas:

    [autoit]

    Run("C:\Programm\beispielprogramm.exe -parameter1") ;usw

    [/autoit]

    also quasi das du einen konverter findest der solche parameter hat wo du deine file direkt ohne mausklick etc konvertieren kannst

    MFG FireFlyer

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

  • Ich suche gerade verzweifelt danach (google).
    Gibt es eine Standardausgaben zum Beispiel Programm.exe /help oder /?, um sowas zu erfahren?
    Ich ahne, weil ich noch so ergebnislos bin, dass das Programm das nicht kann.

    Was ist denn mit meinem Script?! Wenn es dann das Gleiche gut macht ist es doch auch okay.
    Ich habe das Gefühl, dass ich so "umständlich" schneller am Ziel bin als das mit der Kommandozeilenparameter-Sache. :wacko:

  • naja du musst dann dein programm mit run öffnen und dort mausklicks und tasten simulieren

    controlsend usw werden dir helfen genauso wie mouseclick etc

    MFG FireFlyer

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

  • Zurück zu meinem Teil 3.
    Ich habe 3 Dateien mit .xxx gefunden. Wie übergebe ich die dem Programm, dass sie dort geöffnet werden?
    FileOpen scheint sich nur auf TextDtaeien zu beziehen.