Dos Befehl Ausführen und "AusgabeString" verarbeiten



  • Hallo,

    wie kann ich einen Konsolenbefehl ausführen und die ausgabe als String in C++ verarbeiten?

    AnsiString s_command = "identify _hoch1.jpg";
      AnsiString s_folder  = "d:";
    
      ShellExecute(NULL, "open", "cmd.exe", s_command.c_str(), s_folder.c_str(), SW_SHOW);
    

    so hat das irgendwie gar nicht geklappt ... 😞



  • Hallo

    Die Pfadangabe muß auf jedenfall so aussehen :

    AnsiString s_folder  = "d:\\";
    

    Außerdem frag ich mich, was identify sein soll.

    bis bald
    akari



  • hmm ... an sich hat es sich erledigt .... aber die lösung zu dem eigentlichen problem würde mich trotzdem interessieren ...

    mfg



  • mich auch!



  • identify ist ein konsolenbefehl von ImageMagick.
    Wird zur Bildbearbeitung verwendet...



  • Hallo

    identify ist ein konsolenbefehl von ImageMagick

    Was verstehst du darunter? ich kenne mich mit ImageMagick nicht aus, heißt das das identify eine Exe ist? Bedenke, das sich über cmd.exe ausschließlich Ausführbare Dateien oder Verknüpfte Dokumente ausführen lassen.
    Und wenn identify ausführbar ist, kannst du es gleich anstatt cmd.exe aufrufen.

    bis bald
    akari



  • Hallo
    versuchs mal hiermit:
    Stichwort Pipe

    http://www.c-plus-plus-archiv.de/forum/show.ca/message/8845/

    Gruss



  • //convert -resize 118 test.jpg test2.jpg
    
      AnsiString s_command, s_param, s_folder;
      s_command = "convert";
      s_param   = "-resize 118 _hoch1.JPG test6.jpg";
      s_folder  = "D:\\";
    
      ShellExecute(NULL, "Open", s_command.c_str(), s_param.c_str(), s_folder.c_str(), SW_SHOWNORMAL);
    

    das ist der quelltext... die erste kommentierte zeile funktioniert wenn ich sie in d:\\ in die cmd eingebe ... aber so ausgeführt passiert gar nix ....
    leider kann ich nichmal schauen ob da ne fehlermeldung oder sowas kommt weil die dosbox ja sofort weg ist 😞

    EDIT...

    alternativ hab ich das probiert
    "convert -resize 118 d:\_hoch1.JPG d:\\test6.jpg" .... in der cmd funktionierts aus einem fremden verzeichnis, mit shell execute aber nicht ...



  • Warum verwendest du den ImageMagick nicht in deinem Code, der Quellcode ist doch Open Source, dann kannste die betreffenden Funktionen selber aufrufen und auswerten und musst hier nicht solche Klimmzüge über die Kommandozeile machen.

    Aber abgesehen davon finde ich diese Bibliothek persönlich sowieso ziemlich ärmlich programmiert. Nur die Unterstützung der ganzen Grafikformate reisst etwas raus.



  • Sunday schrieb:

    warum verwendest du den ImageMagick nicht in deinem code, der quellcode ist doch Open Source, dann kannste die betreffenden Funktionen selber aufrufen und auswerten und musst hier nicht solche Klimmzüge über die Kommandozeile machen.

    ... bin mir nicht sicher ob ichs hinbekomme mit dem einbinden in mein programm.
    mittlerweile brauch ich die auswertung der rückgabe nicht mehr...sondern ich will lediglich einen aufruf mit parametern machen wie einen post drüber...

    ... wenn du mir zeigen würdest wie ich das mache ... wär es natürlich cool



  • Hallo

    ich verwende bei meinen ShellExecute auch immer bei dem Namen der Exe den kompletten Pfad. Also in deinem Beispiel

    s_command = KompletterPfadWoConvertLiegt + "convert";
    

    wobei du natürlich auf die Doppelten Backslashes im Quellcode achten must.

    Außerdem hat ShellExecute einen Rückgabewert, den du auswerten kannst.

    bis bald
    akari



  • okay ich probiers mal ...



  • JAAAAAAAAAAAAAAAA JUUUUUUUHUUUUUUUUUUUUUUUU ....

    daran lags ... ich kann zwar unter ausführen direkt "convert" eingeben, aber bei der ShellExecute muss ich die Pfadangabe noch davorpacken ... dann funktionierts!!

    DAAAANNNKKEEEEEEE 🙂 🙂 🙂


Anmelden zum Antworten