看流星社区

 找回密码
 注册账号
查看: 2612|回复: 2

[Delphi] 请教显示隐藏所有同名窗口ShowWindow

[复制链接]

该用户从未签到

发表于 2011-4-3 14:28:35 | 显示全部楼层 |阅读模式
游戏多开,有很多同名窗口,但我这样的代码只能隐藏或显示第一个窗口,如何实现一次性全部隐藏或显示所有同名窗口
请高手指点下!
procedure TForm1.Button13Click(Sender: TObject);
var
  h1:hwnd;
begin
   h1:=FindWindow('TFrmMain','legend of mir2');
  if button13.caption='隐藏游戏' then
  begin
    ShowWindow(h1,0);
    Button13.caption:='显示游戏';
  end
  else
  begin
    ShowWindow(h1,5);
    Button13.caption:='隐藏游戏';
  end;
end;

该用户从未签到

发表于 2011-4-3 14:28:45 | 显示全部楼层
FINDWINDOW只能获取一个.

你遍历下所有窗口.是游戏的就都隐藏.

该用户从未签到

发表于 2011-4-3 14:39:53 | 显示全部楼层
function EnumWindowProc(AWnd: HWND; AlParam: LPARAM):Boolean;stdcall;//遍历
var
  strCaption,strClassName: pChar;
  p:Dword;
begin

  GetMem(strCaption, 255);
  GetMem(strClassName, 255);
  GetWindowText(AWnd, strCaption,255);//窗口
  GetClassName(AWnd, strClassName, 255);//类
  GetWindowThreadProcessId(awnd,@P);//PID
  if (StrPas(strClassname)='UniqueGameUniqueWWindowsViewportWindow') then
  begin
    if p=GetCurrentProcessId then
    begin
    //form1.mmo1.Lines.Add(IntToHex(AWnd,8)+'|'+inttostr(p)+'|'+inttostr(GetCurrentProcessId));
    msws:=awnd;
    end;
   end;
  Result := True;
end;
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-23 14:25

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表