首页 > 系统相关 >根据ProcessId获取进程的窗口句柄

根据ProcessId获取进程的窗口句柄

时间:2023-05-30 16:25:13浏览次数:55  
标签:ProcessId TEnumInfo 窗口 句柄 end PID EI Result DWORD

function TForm1.GetHWndByPID(const hPID: THandle): THandle;
type
PEnumInfo = ^TEnumInfo;
TEnumInfo = record
ProcessID: DWORD;
HWND: THandle;
end;

function EnumWindowsProc(Wnd: DWORD; var EI: TEnumInfo): Bool; stdcall;
var
PID: DWORD;
begin
GetWindowThreadProcessID(Wnd, @PID);
Result := (PID <> EI.ProcessID) or
(not IsWindowVisible(WND)) or
(not IsWindowEnabled(WND));

if not Result then EI.HWND := WND;
end;

function FindMainWindow(PID: DWORD): DWORD;
var
EI: TEnumInfo;
begin
EI.ProcessID := PID;
EI.HWND := 0;
EnumWindows(@EnumWindowsProc, Integer(@EI));
Result := EI.HWND;
end;
begin
if hPID<>0 then
Result:=FindMainWindow(hPID)
else
Result:=0;
end;

标签:ProcessId,TEnumInfo,窗口,句柄,end,PID,EI,Result,DWORD
From: https://www.cnblogs.com/lucken2000/p/17443560.html

相关文章

  • 直播app开发,系统之窗口横屏锁定以屏幕方向介绍
    直播app开发,系统之窗口横屏锁定以屏幕方向介绍android源码中通过PhoneWindowManager.java来管理窗口的显示,为WMS的一个主要部分。其源码地址如下: frameworks\base\services\core\java\com\android\server\policy\PhoneWindowManager.java​PhoneWindowManager关于屏幕方向控......
  • Qt实现两个窗口之间信号发送与接收
    主要使用了信号与槽的相关实现方法目录1、实现过程2、运行效果1、实现过程1、新建一个Widget,然后再建一个QMainWindow。2、在mainwindow.h头文件中自定义信号,声明的时候要用signals关键字,在public、private和protect等限定符,因为信号默认是public函数。3、在mianwindow.ui中添......
  • 根据窗口名,获得窗口句柄
    根据窗口名,获得窗口句柄1.引入User32函数 FindWindow通过窗口名获取句柄的函数///<summary>///获取窗体句柄///</summary>///<paramname="lpClassName">传null</param>///<paramname="lpWindowName">窗口名</param>///<returns>&l......
  • Visual Studio 调试效率提升小Tips 桌面 MFC应用程序增加控制台窗口
    VisualStudioIDE调试问题调试时中文字符串显示乱码或者问号=>将该变量添加到监视,在变量名后添加,s8为gui程序添加console窗口打印信息//wxhaddconsoleforprintinfo!if(!AllocConsole()){ printf_s("wxhopenconsolefailed!\n");}else{ charszBuff[......
  • 如何设计一个速率限制器(令牌桶/漏桶/固定窗口/滑动窗口)
    在网络系统中,速率限制器被用来控制客户端或服务发送的流量的速率。在HTTP领域,速率限制器限制了在指定周期内允许发送的客户端请求的数量。如果API请求的数量超过了速率限制器定义的阈值,所有超出的调用都会被阻止。以下是一些示例:用户每秒钟最多只能发布2篇帖子。你可以每天......
  • pb数据窗口改变选中行的背景色
     效果: ......
  • 【无人机任务分配】基于合同网协议(CNP算法)实现多无人机具有时间窗口和优先级约束任务
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 如何在关闭窗口时增加确认框
    如何在关闭窗口时增加确认框当我们点击窗口的关闭图标时,窗口马上会被关闭。如何增加一个确认框,当用户确认时才关闭窗口呢?方法是为窗口Stage设置一个在关闭时的事件回调函数,在里面做相应的处理。代码片段如下:window.setOnCloseRequest(e->{e.consume();//告诉Java......
  • 文件句柄(File Handle)
     文件句柄(FileHandle)是操作系统中用于访问文件的一种数据结构,通常是一个整数或指针。文件句柄用于标识打开的文件,每个打开的文件都有一个唯一的文件句柄。在Linux和Unix系统中,文件句柄是通过调用open()系统调用打开文件时返回的。当打开一个文件时,操作系统会为该文件分......
  • FLEX实践—获取当前窗口大小
       在FLEX中获取当前窗口的长度与宽度使用下面的方法:   Application.application.width   Application.application.height    在设置弹出窗口的长与宽的时候可以根据比例来设置,而不用将其长与宽设置为固定值。这样做的好处是考虑到了IE窗口的大小,通过比例设置可......