进程间通信(向"计算器"发送消息)
作者:lnjamn
关键字:
时间:2005-12-30 5:07:46
//在WinXP下测试通过
//首先运行calc.exe
//修改"计算器"的CE按钮,使其Visible为False或者Enabled为False
procedure TForm1.Button4Click(Sender: TObject);
Var
hwnd_Calc, hwnd_btn_CE : HWND;
begin
hwnd_Calc := FindWindow(nil, '计算器');
if hwnd_Calc<> 0 then
begin
hwnd_btn_CE := FindWindowEx(hwnd_Calc, 0, 'Button', 'CE');
ShowWindow (hwnd_btn_CE, SW_HIDE) ; // Visible := False;
//EnableWindow (hwnd_btn_CE, FALSE) ; // Enabled := False;
end;
end;
//向"计算器"发送 ALT+E
procedure TForm1.Button7Click(Sender: TObject);
Var
hwnd_Calc, hwnd_btn_CE : HWND;
begin
hwnd_Calc := FindWindow(nil, '计算器');
if hwnd_Calc<> 0 then
begin
setforegroundwindow(hwnd_Calc);
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
keybd_event(ord('E'), MapVirtualKey(ord('E'), 0), 0, 0);
keybd_event(ord('E'), MapVirtualKey(ord('E'), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);
end;
end;
|