43. FAQ o Win API |
Q> How to make that my program could not be killed? A> I did not try, but imho from End Task it does not rescue From: V. Liseev
To do not killed process very simply.
Before killing Windows at first tries to complete
It in an amicable way. Here it also should launch the copy
And to transfer it all necessary data before the safe
End.
LRESULT WINAPI WndProc (HWND hWnd, UINT msg,
WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
//HANDLE_MSG (hWnd, WM_CREATE, WndProc_OnCreate);
HANDLE_MSG (hWnd, WM_DESTROY, WndProc_OnDestroy);
//HANDLE_MSG (hWnd, WM_SIZE, WndProc_OnSize);
//HANDLE_MSG (hWnd, WM_COMMAND, WndProc_OnCommand);
default:
return DefWindowProc (hWnd, msg, wParam, lParam);
}
}
void WndProc_OnDestroy (HWND hWnd)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
//we Create other process, and this safely we complete.
memset (&si, 0, sizeof (STARTUPINFO));
si.cb = sizeof (STARTUPINFO);
CreateProcess (NULL, "program.exe", NULL, NULL,
FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
CloseHandle (pi.hThread);
CloseHandle (pi.hProcess);
PostQuitMessage (0);
//return FORWARD_WM_DESTROY (hWnd, DefWindowProc);
}
|
2000 (c) DM