*.EXE Starten



  • berniesbutt schrieb:

    Es wurde noch nie eine "veraltete" Funktion aus der WinAPI wirklich entfernt und das wird auch zukünftig nicht der Fall sein, da es keinen Sinn macht und Jeder, der Microsoft ein wenig kennt, weiß, wieviel Wert man bei Microsoft auf Abwärtskompatibilität legt. Das geht sogar soweit, daß man Patches für einzelne Anwendungen von Drittherstellern für das Betriebssystem entwickelt. Also wenn man alle Argumente abwägt, kann man ruhigen Gewissens zu WinExec greifen und es ist in diesem Fall die beste Option!

    Windows Vista 64-Bit unterstützt keine 16-Bit Programme mehr. So viel zur sichergestellten Abwärtskompatibilität. Wenn man alle Argumnte abwägt und man zukunftssicher sein will, dann ist WinExec eben nicht die beste Option.



  • Mal ne kurze Frage:
    ShellExecute() öffnet keine neue Konsole wie es bei system() der Fall ist, oder?



  • 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!


Anmelden zum Antworten