Domanda

Noto un handle di applicazioni quando utilizzo la funzione shell per aprirlo. Quindi uso quell'handle per chiudere l'applicazione in seguito. Tuttavia, l'utente può anche chiudere l'altra applicazione da solo. Quella maniglia può quindi essere riutilizzata da Windows in modo che quando uso quella maniglia chiuda un processo diverso. Se è possibile, è probabile?

È stato utile?

Soluzione

No, non devi preoccuparti. L'handle restituito, ad esempio, da OpenProcess, ShellExecuteEx () o CreateProcess mantiene in vita l'oggetto di processo. Ecco come è possibile chiamare GetExitCodeProcess () per recuperare il codice di uscita al termine del processo.

L'oggetto non viene rilasciato fino alla chiusura dell'ultimo handle su di esso. Di fronte ai precedenti consigli forniti in questo thread, è molto importante chiamare CloseHandle () o si avrà una perdita.

Altri suggerimenti

Puoi aspettare su un handle di processo per capire quando viene chiuso.

WaitForSingleObject (hProcess, INFINITE);

Una volta restituito, sai che il processo è terminato e non è necessario chiuderlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top