var
HWndXXX : HWnd;
begin
HWndXXX := Winprocs.FindWindow(nil, 'XXX');
if HWndCalculator <> 0 then
SendMessage(HWndXXX, WM_CLOSE, 0, 0);
end;
XXX:is the program you want to end it :-)
可以使用 WH_CBT 类型的钩子,在这个钩子的回调函数里,
function CBTProc(nCode:int, wParam: UINT, lParam: long): long;
var
hWnd: HWND;
nLen: Integer;
Buff: array[0..4095] of Char;
begin
if nCode<0 then
begin
Result := CallNextHookEx(hHook, nCode, wParam, lParam);
Exit;
end;
if nCoe=HCBT_DESTROYWND then
begin
hWnd := HWND(waram);
GetClassName(hWnd, @Buff, 128);
if CompareStr(Buff,'Notepad')=0 then
begin
hWnd := FindWindowEx(hWnd, Nil, @Buff, Nil);
nLen := GetWindowText(hWnd, @Buff, SizeOf(Buff));
; 这儿保存Buff里的文字
end;
end;