下你所需,载你所想!
IT技术源码资料下载网站

Delphi遍历进程得到匹配的窗口标题

:其他软件 2019-12-12 11:30:55

Delphi遍历进程得到匹配的窗口标题含源代码

如果要输出中文需要在程序入口添加setlocale,EnumWindows只能枚举顶级窗口,需要递归调用EnumChildWindows才能获得进程的所有窗口。
遍历进程得到匹配的窗口标题含源代码

procedure TForm1.Button3Click(Sender: TObject);
var
  hCurrentWindow: hWnd;
  szText: array[0..254] of char;
begin
  ListBox1.Clear;
  hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST);    //获取第一个窗口的句柄
  while hCurrentWindow <> 0 do
  begin
    if GetWindowText(hCurrentWindow, szText, 255) > 0 then //获取窗口的名称
    begin
//ListBox1.Items.Add(StrPas(szText));        //获取下一窗口的句柄
      if (POS('- x32dbg', StrPas(szText)) > 0) or (POS('- x64dbg', StrPas(szText)) > 0) then
        ShowMessage(StrPas(szText));
    end;
    hCurrentWindow := GetWindow(hCurrentWindow, GW_HWNDNEXT);
  end;
end;