Sending an arbitrary Signal in Windows?

If what you want is to explicitly/programmatically kill another program/process of any kind, within the SysInternals’ pstools there is a small tool named “pskill” that behaves just like Unixen “kill” would do.

If you want something else, keep reading (though I may be wrong on some of the specifics below – it’s been eons since I last developed a Windows program in C using only the WinAPI and Charles Petzold’s excellent books “Programming for Windows” as a guide).

On Windows you don’t properly have “signals”, what functions WinMain and WinProc receive from the Operating System are simple messages. For instance, when you click on the “X” button of a window, Windows sends that windows’ handler the message WM_CLOSE. When the window’s deleted but program’s still running, it sends WM_DESTROY. When it’s about to get out of the main message processing loop, WinMain (not WinProc) receives WM_QUIT. Your program should respond to all these as expected – you can actually develop an “unclosable” application by not doing what it should upon receiving a WM_CLOSE.

When user selects the task from Windows Task Manager and clicks “End Task”, the OS will send WM_CLOSE (and another one I don’t remember). If you use “End Process”, though, the process is killed directly, no messages sent ever (source: The Old New Thing)

I remember there was a way to get the HWND of another process’ window, once you get that another process could send that window a message thru functions PostMessage and DispatchMessage.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)