ďťż

Ładny brzuch

Jak otworzyć ze swojego programu inny program, ale w taki sposób by mój program poczekał z wykonywanie dalszych instrukcji do czasu zamknięcia uruchamianego programu ?

Wyglądać ma to mnie więcej tak
1. wykonuje jakieś tam instrukcje
2. uruchamiam obcy program
3. czekam aż program zostanie zamknięty
4. wykonuję dalsze instrukcje

W aplikacjach konsolowych nie było to problemem ponieważ wywołanie funkcji system(ścieżka_programu); uruchamiało program, czekało aż zostanie zamknięty i dopiero wtedy wykonywało dalsze instrukcje. Natomiast w WinAPI wywołanie funkcji
ShellExecute(Handle, "Open", "calc.exe", NULL, NULL, SW_NORMAL);
skutkuje owszem otwarciem programu, ale nie czeka na jej zamknięcie tylko od razu wykonuje dalszą część kodu :/



Widzę, że poziom znajomości winApi jest na tym forum niski, skoro nie ma odpowiedzi nawet na tak proste pytanie.


Jak otworzyć ze swojego programu inny program, ale w taki sposób by mój program poczekał z wykonywanie dalszych instrukcji do czasu zamknięcia uruchamianego programu ?

Wyglądać ma to mnie więcej tak
1. wykonuje jakieś tam instrukcje
2. uruchamiam obcy program
3. czekam aż program zostanie zamknięty
4. wykonuję dalsze instrukcje

W aplikacjach konsolowych nie było to problemem ponieważ wywołanie funkcji system(ścieżka_programu); uruchamiało program, czekało aż zostanie zamknięty i dopiero wtedy wykonywało dalsze instrukcje. Natomiast w WinAPI wywołanie funkcji
ShellExecute(Handle, "Open", "calc.exe", NULL, NULL, SW_NORMAL);
skutkuje owszem otwarciem programu, ale nie czeka na jej zamknięcie tylko od razu wykonuje dalszą część kodu :/


Należy skorzystać z funkcji API CreateProcess() - zwraca ona między innymi uchwyt procesu.
Następnie skorzystać z tego uchwytu (nazywa się hProcess, nie hProcessId):
WaitForSingleObject(uchwyt,$ffffffff);

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •