1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Exe Datei aus C++ heraus starten

    • Frage
  • -Norbert-
  • 24. August 2006 um 16:24
  • Unerledigt
  • -Norbert-
    2
    -Norbert-
    Mitglied
    Punkte
    15
    Beiträge
    2
    • 24. August 2006 um 16:24
    • #1

    Erstmal die Situation:
    Ich wollte die Musik eines Spieles auf ein im Winamp abspielbares Format bringen.
    Nach kurzer Suche bin ich auf ein Programm gestoßen, mit dem ich das kann, aber leider nur jede Datei einzeln (über die Eingabeaufforderung -> programm.exe musik_datei.acm).
    Also hab ich mir gedacht ich schreib mir ein eigenes Programm, dass einfach dieses andere durch eine Schleife laufen lässt und so den ganzen Ordnerinhalt auf einmal konvertiert.

    Jetzt hab ich ein Programm, dass mir die ganzen zu konvertierenden Datein rausfiltert, die dann als Parameter an die Exe Datei übergeben werden müssen.

    Nur wie kann ich jetzt diese Exe Datei starten?

    Ich hab bereits über 3 Stunden lang im Internet gesucht, ohne was zu finden was mir weitergeholfen hätte.

  • Paulchen
    1
    Paulchen
    Gast
    • 24. August 2006 um 16:37
    • #2

    Aehm, wuerde es nicht reichen, das Ganze in der Eingabeaufforderung mit einer for-Schleife zu machen:

    Code
    for %a in (*.acm) do programm.exe %a
  • sauzachn
    17
    sauzachn
    Mitglied
    Reaktionen
    51
    Punkte
    3.101
    Beiträge
    606
    • 24. August 2006 um 17:03
    • #3

    Natürlich hat Paulchen recht: Genau dafür gibt es for-Schleifen.

    Wie es dennoch auch in C++ ginge: mit dem system() Call:

    Code
    #include <stdlib.h>
    main() {
     system("c:\pfad\zu\programm.exe");
    }

    Dipper dipper dii dipper dii dipper dii duuu

  • -Norbert-
    2
    -Norbert-
    Mitglied
    Punkte
    15
    Beiträge
    2
    • 24. August 2006 um 17:06
    • #4

    Danke Euch beiden. :)
    Ich wusste nicht dass man im Dos auch schleifen machen kann.

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 25. August 2006 um 17:08
    • #5

    Ich hab eine kurze Frage, die zur Antwort vom Paulchen passt. So wie du die Schleife gemacht hast, würde das Programm jedes mal für jede .acm datei aufgerufen werden.

    programm.exe 1.acm
    programm.exe 2.acm
    usw.

    Wie kann ich aber eine Schleife machen, damit das ganze so aussieht:
    programm.exe 1.acm 2.acm 3.acm
    ?

    Einfach alle Dateien einer bestimmten Dateiendung als Parameter übergeben. Ich hab schon alles mögliche versucht, habs aber noch nicht hinbekommen.

    640K ought to be enough for anybody. :eek2:

  • Paulchen
    1
    Paulchen
    Gast
    • 25. August 2006 um 17:48
    • #6

    Hm, hab mir das kurz angesehen... bin aber nur auf eine "schmutzige" Lösung gekommen (cmd32 ist leider nicht bash :frowning_face: ):

    Ich brauch eine Hilfs-Stapelverarbeitungsdatei, z.B. c:\bla.bat:

    Code
    set bla=%bla% %1


    Und dann geht das Gewünschte mit:

    Code
    set bla=
    for %a in (*.acm) do c:\bla.bat %a
    programm.exe %bla%

    Was passiert hier?
    Ich verwende eine Umgebungsvariable bla, in der ich die Argumente für programm.exe zwischenspeichere. Um das zu bewerkstelligen, setze ich zunächst diese Variable durch

    Code
    set bla=


    zurück. Dann führe ich in der for-Schleife für jede Datei c:\bla.bat mit der Zählvariable als Argument aus. Die Stapelverarbeitungsdatei hängt dann an den bisherigen Inhalt von bla den übergebenen Parameter an.

    Und warum geht

    Code
    set bla=
    for %a in (*.acm) do set bla=%bla% %a
    programm.exe %bla%

    nicht?

    Nun, das ist ganz einfach: Sobald die Zeile mit der for-Schleife verarbeitet wird, wird %bla% durch den Wert von bla ersetzt; dann steht da

    Code
    for %a in (*.acm) do set bla= %a

    und das geht natürlich nicht.

  • sauzachn
    17
    sauzachn
    Mitglied
    Reaktionen
    51
    Punkte
    3.101
    Beiträge
    606
    • 25. August 2006 um 21:39
    • #7
    Zitat von Swoncen

    Wie kann ich aber eine Schleife machen, damit das ganze so aussieht:

    Code
    programm.exe 1.acm 2.acm 3.acm


    ?


    Unter Linux geht das mit

    Code
    programm *.acm


    (btw: er sortiert die Dateien auch gleich)

    Geht das unter Windows nicht auch so?

    Dipper dipper dii dipper dii dipper dii duuu

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 25. August 2006 um 21:49
    • #8

    nein.. ich habs versucht und er nimmt den String "*.acm" als Datei :eek2:

    640K ought to be enough for anybody. :eek2:

  • Wolfibolfi
    37
    Wolfibolfi
    Mitglied
    Reaktionen
    186
    Punkte
    14.936
    Beiträge
    2.942
    • 25. August 2006 um 22:01
    • #9

    Das * Zeuchs wird wohl von den Programmen selbst unterstützt. "ren "*.txt *.furz" funktioniert.

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 25. August 2006 um 22:02
    • #10

    Paulchen ich kann dir nicht ganz folgen. Ist das jetzt eine Lösung, oder nicht? Ich habs so probiert und es funktioniert halbwegs, nur der Aufruf vom Programm wird nicht mehr verarbeitet.. hmm

    640K ought to be enough for anybody. :eek2:

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 25. August 2006 um 22:05
    • #11
    Zitat von Wolfibolfi

    Das * Zeuchs wird wohl von den Programmen selbst unterstützt. "ren "*.txt *.furz" funktioniert.




    Bei mir nicht..

    640K ought to be enough for anybody. :eek2:

  • Wolfibolfi
    37
    Wolfibolfi
    Mitglied
    Reaktionen
    186
    Punkte
    14.936
    Beiträge
    2.942
    • 25. August 2006 um 22:11
    • #12

    Hoppla, wie kommt das Anführungszeichen da rein?
    So muss es aussehn:

    ren *.txt *.furz

    also bei mir geht das.

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • sauzachn
    17
    sauzachn
    Mitglied
    Reaktionen
    51
    Punkte
    3.101
    Beiträge
    606
    • 25. August 2006 um 22:19
    • #13
    Zitat von Wolfibolfi

    Das * Zeuchs wird wohl von den Programmen selbst unterstützt. "ren "*.txt *.furz" funktioniert.


    Ach du sch....! Ja, das ist Windows in Reinkultur...

    Dipper dipper dii dipper dii dipper dii duuu

  • Paulchen
    1
    Paulchen
    Gast
    • 25. August 2006 um 23:15
    • #14
    Zitat von Swoncen

    Paulchen ich kann dir nicht ganz folgen. Ist das jetzt eine Lösung, oder nicht?

    Ja, sicher, hab ich ausprobiert, hat bei mir funktioniert. Ich kann nur wiederholen, was ich oben schon geschrieben habe: Inhalt von c:\bla.bat:

    Code
    set bla=%bla% %1


    Und dann Zeile für Zeile eingeben:

    Code
    set bla=
    for %a in (*.acm) do c:\bla.bat %a
    programm.exe %bla%
    Zitat von Swoncen

    Ich habs so probiert und es funktioniert halbwegs, nur der Aufruf vom Programm wird nicht mehr verarbeitet.. hmm

    hm? (Wie soll ich das verstehen?)

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 28. August 2006 um 17:08
    • #15

    Naja ich hab das als batch datei ausgeführt und er arbeitet auch alles ab, nur nicht die letzte Zeile.. "programm.exe %bla%"

    Vielleicht, weil er zwischen bla.bat und der aktuellen batch datei immer hin und her hüpfen muss.. wenn ichs händisch eingeb, gehts.

    640K ought to be enough for anybody. :eek2:

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 28. August 2006 um 17:39
    • #16

    Ich hab probiert die letzte Zeile in "bla.bat" zu stellen und es funktioniert. Jedoch wird das programm so ausgeführt:

    programm.exe 1.txt
    programm.exe 1.txt 2.txt
    programm.exe 1.txt 2.text 3.txt
    programm.exe 1.txt 2.text 3.txt 4.txt
    usw.

    Es funktioniert zwar, aber so kann ichs nicht lassen. Falls wer eine Lösung kennt, bitte ich um Hilfe.

    mfg

    640K ought to be enough for anybody. :eek2:

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 29. August 2006 um 09:24
    • #17

    Ich hab noch ein Problem, und zwar gehts um den Link zum Acrobat Reader. Ich kann nach keinen Umlauten suchen. Bsp.:

    uni.pdf#search="Hörsaal"

    Im Reader wird dann nach "Hrsaal" gesucht. Was ist das Problem? Ich verwende die deutsche Version von Adobe Acrobat Standard. Ich glaub es liegt aber nicht am Reader, sondern an den Umlauten in der URL, oder? Wie kann ich das umgehen?

    640K ought to be enough for anybody. :eek2:

  • Paulchen
    1
    Paulchen
    Gast
    • 29. August 2006 um 09:57
    • #18
    Zitat von Paulchen

    Ja, sicher, hab ich ausprobiert, hat bei mir funktioniert. Ich kann nur wiederholen, was ich oben schon geschrieben habe: Inhalt von c:\bla.bat:

    Code
    set bla=%bla% %1


    Und dann Zeile für Zeile eingeben:

    Code
    set bla=
    for %a in (*.acm) do c:\bla.bat %a
    programm.exe %bla%

    Verwendest du Letzteres in einer zweiten Batch-Datei, musst du schreiben:

    Code
    set bla=
    for [COLOR='Red']%[/COLOR]%a in (*.acm) do [COLOR='Red']call [/COLOR]c:\bla.bat [COLOR='Red']%[/COLOR]%a
    programm.exe %bla%

    (Hab ich schon mal erwähnt, dass ich die DOS-Shell liebe?)

    Zitat von Swoncen

    Ich glaub es liegt aber nicht am Reader, sondern an den Umlauten in der URL, oder?

    Ich hab versucht, "Hörsaal" als "H%F6rsaal" in der URL einzugeben, das bringt nix, ich denke daher, du darfst dem Reader die Schuld geben.

    Btw. wenn ich "Studienplan.pdf#search=Studienpläne" eingebe, wird (bei mir zumindest) nach "tudienpln" gesucht :distur:

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 29. August 2006 um 10:00
    • #19

    Danke Paulchen. %F6 hab ich auch schon versucht und &ouml; usw. nix funktioniert.

    Probiers mal mit

    <A HREF="Studienplan.pdf#search=%22Studienpläne%22">Pläne</A>
    oder
    <A HREF="Studienplan.pdf#search='Studienpläne' ">Pläne</A>

    640K ought to be enough for anybody. :eek2:

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern