
虽说不麻烦吧 但是贴出来也不少代码先声明下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如何通过窗口句柄获取窗口信息(名称)。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)