给同一类型窗口发消息

//方法一

procedure TForm1.Button1Click(Sender: TObject);
var
  H_window: HWND;
  Text: array[0..255] of char;
begin
  H_window := GetWindow(Handle,GW_HWNDFIRST);
  While H_window<>0 do
  begin
    if GETWindowText(H_window,@text,255)>0 then
    if((StrPas(@Text)='QQ2012'))then
    sendmessage(H_window,WM_SYSCOMMAND,SC_MINIMIZE,0);
    H_window:=GetWindow(H_Window,GW_HWNDNEXT);
  end;
end;

//方法二

 

function EnumWindowsProc_2(hwnd: HWND; lParam: LPARAM): Boolean; stdcall;

procedure TForm1.Button2Click(Sender: TObject);
begin
  EnumWindows(@EnumWindowsProc_2, 0);
end;

function EnumWindowsProc_2(hwnd: HWND; lParam: LPARAM): Boolean; stdcall;
var  buf: array[Byte] of Char;
begin
  GetWindowText(hwnd, buf, SizeOf(buf));
  if buf = 'QQ2012' then
  sendmessage(hwnd,WM_SYSCOMMAND,SC_MINIMIZE,0);
  Result := True;
end;
posted @ 2012-11-01 14:02  ftwsnow  阅读(165)  评论(0编辑  收藏  举报