易语言 知道进程名如何提取窗口句柄

易语言 知道进程名如何提取窗口句柄,第1张

虽说不麻烦吧 但是贴出来也不少代码先声明下API 需要用到一个APIDLL命令 GetWindowThreadProcessId, 整数型, "user32dll", "GetWindowThreadProcessId"

参数 窗口句柄, 整数型

参数 进程标识符, 整数型, 传址下面就是详细代码了版本 2

支持库 eAPI子程序 _按钮1_被单击

局部变量 进程ID, 整数型

局部变量 句柄组, 文本型, , "0"

局部变量 I, 整数型

局部变量 文本标题, 文本型

局部变量 PID, 整数型

局部变量 文本, 文本型进程ID = 进程名称取PID (“QQexe”)

如果真 (进程ID = -1)

信息框 (“进程没有打开啊”, #错误图标, )

返回 ()

如果真结束

句柄组 = 取所有窗口列表 ()

文本标题 = 编辑框1内容

计次循环首 (取数组成员数 (句柄组), I)

GetWindowThreadProcessId (到整数 (句柄组 [I]), PID)

如果真 (PID = 进程ID)

文本 = 取窗口标题 (到整数 (句柄组 [I]))

如果真 (文本 = 文本标题)

信息框 (“窗口已经打开”, 0, )

返回 ()

如果真结束 如果真结束计次循环尾 ()

信息框 (“窗口未打开”, 0, )子程序 进程名称取PID, 整数型

参数 进程名, 文本型

局部变量 进程, 进程信息, , "0"

局部变量 i, 整数型进程 = 取系统进程列表 ()

计次循环首 (取数组成员数 (进程), i)

如果真 (进程 [i]进程名称 = 进程名)

返回 (进程 [i]进程标识符)

如果真结束计次循环尾 ()

返回 (-1)

HWND nhWnd[10];

int count;

BOOL CALLBACK EnumWndProc(HWND hwnd, LPARAM lParam)

{

DWORD dwID ;

GetWindowThreadProcessId(hwnd, &dwID) ;

if (dwID == (DWORD)lParam && IsWindowVisible(hwnd) && GetParent(hwnd) == NULL)

{

nhWnd[count++] = hwnd;

}

return (count == 10) false : true;

}

void GetProcessTopWindows(DWORD dwPID)

{

count = 0;

EnumWindows((WNDENUMPROC)EnumWndProc, (LPARAM)dwPID);

}

GetProcessTopWindows(dwPID)//dwPID进程句柄

将属于 dwPID进程的所有顶层可见窗口句柄保存到nhWnd 中 最多 10 个

有效。

获得进程主窗口的方法:

EnumWindows:>

以上就是关于易语言 知道进程名如何提取窗口句柄全部的内容,包括:易语言 知道进程名如何提取窗口句柄、VC中如何获得其他进程的窗口句柄、MFC如何通过窗口句柄获取窗口信息(名称)。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9730394.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存