RunApplication

Startet ein Programm und wartet auf dessen Rückgabewert.

Archivierter Inhalt: Dieser Quelltext ist derzeit inaktiv und möglicherweise veraltet, nicht mehr gewartet oder funktioniert nicht mehr.

Ein Prozess ist schnell gestartet. Aber dann auch noch auf dessen Beendigung zu warten und den Rückgabewert auszulesen erfordert im Windows-API schon ein paar weitere Zeilen. Die sind in der RunApplication-Funktion dargestellt.

Hinweis zur Codequalität: Der Inhalt auf dieser Seite ist möglicherweise etwas angestaubt. Ich nutze C++ seit längerer Zeit nicht mehr, möchte aber die vorhandenen und früher einmal nützlichen Funktionen weiterhin anbieten.

Download

RunApplication.cpp850 BQuelltext der RunApplication-Funktion

Inhalt der Datei RunApplication.cpp:

// Runs an application and waits for it to return.
//
// Dependencies: CString
// Status: unchecked
//
// Web: http://unclassified.software/source/runapplication
//
int RunApplication(CString strPath, CString strArgs)
{
    BOOL                rc;
    STARTUPINFO         si;
    PROCESS_INFORMATION pi;
    CString             strCmdLine;

    strCmdLine.Format("%s %s", strPath, strArgs);
    // TODO: why don't we use CreateProcess' 1st parameter?
    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    ZeroMemory(&pi, sizeof(pi));
    rc = CreateProcess(NULL,
                strCmdLine.GetBuffer(strCmdLine.GetLength() + 1),
                NULL,
                NULL,
                FALSE,
                0,
                NULL,
                NULL,
                &si,
                &pi);
    if (rc)
    {
        WaitForSingleObject(pi.hProcess, INFINITE); // Wait until child process exits.
        CloseHandle(pi.hProcess);                   // Close process and thread handles.
        CloseHandle(pi.hThread);
    }
    return rc;
}

Lizenz und Nutzungsbedingungen

Diese Software ist als kompilierte Version und im Quelltext frei und uneingeschränkt verfügbar („Public Domain“). Ich gebe keine Garantie, auch nicht auf Lauffähigkeit oder Benutzbarkeit. Die Nutzung erfolgt auf eigene Gefahr, ich hafte nicht für Schäden, die durch sachgemäßen oder unsachgemäßen Gebrauch dieses Programms entstehen.

Statistische Daten

  • Erstellt am 2007-04-02.