Avatar billede martin181 Nybegynder
19. december 2003 - 09:55 Der er 4 kommentarer og
1 løsning

Spørgsmål omkring ShellExecute ?

Bruger ovenstående i c++ program til at køre et eksternt program - kan man få den til at vente med at fortsætte indtil det eksekverede eksterne program er afsluttet?
Avatar billede bertelbrander Novice
20. december 2003 - 01:28 #1
Det tror jeg ikke.
Man kan bruge CreateProcess() til at starte programmet, GetExitCodeProcess() til at checke om det er færdig, og Sleep() til at vente.
Avatar billede dr.truti Nybegynder
20. december 2003 - 13:39 #2
pseudo kode agtigt, kan man sige at du skal tjekke om et givent PID nummer stadig er aktivt.. Der findes API kald der kan gøre dette for dig (har bare ingen på lager).
Avatar billede bertelbrander Novice
20. december 2003 - 19:29 #3
Hvis du er sikker på at den instans af programmet du starter er den eneste, kan du også finde denne og vente på at den er færdig.
Avatar billede coldplay Nybegynder
25. december 2003 - 00:35 #4
Ja, det kan du.

Brug ShellExecuteEx i kombination med WaitForSingleObject.

Hvis spørgsmål, så mail tilbage hertil.
Avatar billede coldplay Nybegynder
25. december 2003 - 14:56 #5
HWND hwnd = GetActiveWindow();

    SHELLEXECUTEINFO info;
    memset(&info, 0, sizeof(info));
    info.cbSize = sizeof(info);
    info.lpVerb = "open";
    info.lpFile = "C:\\windows\\notepad.exe";
    info.lpParameters = "";
    info.fMask = SEE_MASK_NOCLOSEPROCESS;
    info.nShow = SW_SHOWDEFAULT;

    ShellExecuteEx(&info);

    ShowWindow(hwnd, SW_MINIMIZE);
    WaitForSingleObject(info.hProcess,  INFINITE);
    ShowWindow(hwnd, SW_RESTORE);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis