*.EXE Starten
-
Hallo,
shellexec schrieb:
Mal ne kurze Frage:
ShellExecute() öffnet keine neue Konsole wie es bei system() der Fall ist, oder?Das ist einer der Gründe, warum man auf system gerne verzichtet, es wird kein Kommandozeilen-Interpreter benötigt, um Programme zu starten.
MfG,
Probe-Nutzer
-
wenn du eine Konsole haben willst, kannst du natürlich auch das Programm "Start" oder "cmd" mit entsprechenden Parametern aufrufen (per shellexecute versteht sich)
-
Also CreateProcess währe nun die beste Wahl? Hmm, ich werd mich mal schlau machen!
-
Code-Walker schrieb:
Also CreateProcess währe nun die beste Wahl? Hmm, ich werd mich mal schlau machen!
Das kommt darauf an, meist ist man mit den Shell*-Funktionen besser dran, da sie einem häufig benötigte Sachen bereits vorgefertigt liefern.
Die Kern-Funktionen der WinAPI erledigen meist nur das Nötigste und man müsste selber zusätzlichen Code schreiben, beispielsweise wenn du eine HTML-Seite mit dem Standardbrowser öffnen willst.
Das ist kein Problem mit CreateProcess, aber ShellExecute nimmt dir die ganze Arbeit ab.Warum diskutiert ihr überhaupt mit berniesbutt, jemand der solche Kommentare von sich gibt sollte einfach ignoriert werden und man sollte nicht mit ihm "diskutieren".
-
Ja, aber ShellExecute öffnet im Hintergrund noch eine Konsolenanwendung, was ich sehr unschön finde ... Für meinen Anwendungszweck möchte ich lediglich eine Exe starten die auch von mir geschrieben ist. Das ist eine kleine Exe, die inhalt aus einer config datei ausgiebt, mehr macht die nicht ...
-
Code-Walker schrieb:
Ja, aber ShellExecute öffnet im Hintergrund noch eine Konsolenanwendung, was ich sehr unschön finde ... Für meinen Anwendungszweck möchte ich lediglich eine Exe starten die auch von mir geschrieben ist. Das ist eine kleine Exe, die inhalt aus einer config datei ausgiebt, mehr macht die nicht ...
Nein, das tut ShellExecute ganz sicher nicht. Du verwechselst das gerade mit std::system().
-
shellexecute öffnet kein konsolenfenster, außer die gestartete Anwendung ist eine Konsolenanwendung.
Wenn du das Fenster nicht sehen möchtest, versuchs mal mit SW_HIDE (weiß aber nicht, ob das auf das so erzeugte Konsolenfenster einen Einfluss hat)
-
Also ich benutze die Funktion, die für die Sache am praktibalsten ist. Was für einen Sinn macht es mit Kanonen auf Spatzen zu schießen! Und in diesem Falle ist das meiner Meinung nach Ψιπεχεςυτε
Aber lassen wir den armen Threadersteller nun in Ruhe, das Problem ist ja gelöst!