如何得到操作系统所有运行的应用程序的窗口句柄?

blackeye527 2003-05-15 11:53:18


如何得到操作系统所有运行的应用程序的窗口句柄,我要做一个类似于
Ctrl+Alt+Dele 弹出的任务管理器中的运行应用程序列表?


谢先!!!!
...全文
63 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lblyy76 2003-05-18
  • 打赏
  • 举报
回复
AfxGetMainWnd获取自身窗口句柄。
可用FindWindow获取系统中其他窗口句柄.
HWND hWnd = AfxGetMainWnd()->m_hWnd;
HWND hWnd =::FindWindow(NULL,"XXXXXX");
找进程图标不知道。
lblyy76 2003-05-18
  • 打赏
  • 举报
回复
AfxGetMainWnd获取自身窗口句柄。
可用FindWindow获取系统中其他窗口句柄.
HWND hWnd = AfxGetMainWnd()->m_hWnd;
HWND hWnd =::FindWindow(NULL,"XXXXXX");
找图标不知道
blackeye527 2003-05-16
  • 打赏
  • 举报
回复
这样还是只能得到进程号或是执行文件的名称,我该如何得到改进程窗口句柄和窗口图标呢!我在MSDN里找来找去就是找不到这样的函数。能不能在指点一下,问题解决立即给分!!!
blackeye527 2003-05-16
  • 打赏
  • 举报
回复
谢谢!!!试试先
lblyy76 2003-05-16
  • 打赏
  • 举报
回复
//摘自《实效编程百例》
HANDLE hProcessID = NULL;
PROCESSENTRY32 pe32 = {0};
hProcessID = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessID ==(HANDLE) - 1)
{
printf("Failed:%d",GetLastError());
return;
}
pe32.dwSize = sizeof(PROCESSENTRY32);
if(Process32First(hProcessID,&pe32)
{
do
{
//添加进程名到一个LIST控件中
m_List.AddString(pe32.szExeFile)
}
while(Process32Next(hProcessID,&pe32);
}
CloseHandle(hProcessID);
blackeye527 2003-05-16
  • 打赏
  • 举报
回复
还是没有达到目的呀
jruv 2003-05-15
  • 打赏
  • 举报
回复
同意楼上
先用
EnumWindows()枚举出所有窗口句柄。
然后再CallBack函数EnumFunc中取得窗口名柄显示在你的程序中
blackeye527 2003-05-15
  • 打赏
  • 举报
回复
我试试
guoxiny 2003-05-15
  • 打赏
  • 举报
回复
BOOL EnumWindows(
WNDENUMPROC lpEnumFunc, // pointer to callback function
LPARAM lParam // application-defined value
);
blackeye527 2003-05-15
  • 打赏
  • 举报
回复
我现在发现可以用GetWindowThreadProcessId()得到每个运行程序的进程ID,可是我如何通过进程ID得到进程窗口的名称和图标呢?
blue2moon 2003-05-15
  • 打赏
  • 举报
回复
关注!
blackeye527 2003-05-15
  • 打赏
  • 举报
回复
EnumWindows()的确列出了所有的窗口的句柄。可是我只是需要每个运行程序的主窗口的句柄,就像任务管理器里的一样,每个程序只要一个主窗口的标题,并不是像现在这样所有的窗口句柄,该如何从中挑选,或者有什么更好的办法,可能是我没有把问题说清楚。

先谢谢各位


我再试试wwwsq(wwwsq)的办法
wwwsq 2003-05-15
  • 打赏
  • 举报
回复
有个更简单的办法,FindWindowEx(),用法看MSDN很简单。
SnowWolfSLF 2003-05-15
  • 打赏
  • 举报
回复
统一楼上

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧