Frage

Ich habe meine Hauptanwendung, von meiner Hauptanwendung werde ich eine andere anrufen Modul (Dritte) einen kleinen Betrieb in meiner Haupt-Anwendung auszuführen, wenn ich, dass module..it Prozesse für eine bestimmte Zeit 5 sagen nennen sec.while seines verarbeitend es den Prozess im commmand Fenster zeigt mit einiger information..now meines Hauptanwendung wartet, bis der gerufene Modul seine process.Now beendet meine Frage is..how zu tun ich diesen Befehl Fenster verstecken, ohne seine process..I zu stören versucht, die Createprocess zu verwenden, aber es scheint nicht zu funktionieren ...

zum Beispiel: meine Hauptanwendung ist der übergeordnete Prozess und die genannte Anwendung ist Kind process..Parent Prozess des Kindes unabhängig sein sollte mein Beispiel unten

process..check
int main()
{
  execl("c:\\users\\rakesh\\Desktop\\calledapplication.exe","c:\\users\\rakesh\\Desktop    \\calledapplication.exe",0);


}

code in calledapplication
int main
{
  printf("Rakesh");
}

jetzt unter Berücksichtigung der oben, wenn Sie das erste Programm ausführen ... Ausgabe in der gleichen erscheinen würde Befehlsfenster (es soll nicht so sein) ... ich die Hauptanwendung will den Prozess zu schaffen, aber es soll nicht von den untergeordneten Prozess beeinflusst werden.

War es hilfreich?

Lösung

Pass CREATE_NO_WINDOW im dwCreationFlags Parameter von CreateProcess.

Andere Tipps

Sie sprachen von einem „Befehlsfenster“, so nehme ich an, dass das Kind eine Konsolenanwendung ist. In diesem Fall können Sie den Prozess in einem separaten Conole erstellen und gegebenenfalls die neue Konsole erzwingen iconified oder versteckt werden. Mit dem folgenden Code ein Kind-Prozess starten, die eine Batch-Datei (MyTest.bat) interpretiert. Ich hoffe, dass es helfen kann. Grüße.

#include <windows.h>
#include <stdio.h>

int main(int argc, char **argv)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
BOOL rv = FALSE;
WCHAR cmdline[] = TEXT("cmd.exe /c mytest.bat");

    memset(&si,0,sizeof(si));
    si.cb = sizeof(si);
// Add this if you want to hide or minimize the console
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_HIDE; //or SW_MINIMIZE
///////////////////////////////////////////////////////
    memset(&pi,0,sizeof(pi));
    rv = CreateProcess(NULL, cmdline, NULL, NULL,
                           FALSE, CREATE_NEW_CONSOLE,
                           NULL, NULL, &si, &pi);
    if (rv) {
        WaitForSingleObject(pi.hProcess, INFINITE);
                printf("Done! :)\n");
    }
        else {
                printf("Failed :(\n");

    }

        return rv ? 0 : 1;
}

Es klingt wie Sie das Kind Prozess der Ausgabe zeigen, bis in einem separaten Fenster werden soll. Wenn ja, möchten Sie CreateProcess anrufen und sie die CREATE_NEW_CONSOLE Flagge passieren, anstatt exec* verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top