请问:如何像任务管理器一样获得目前系统中所有的窗口?

danmao 2002-11-07 12:43:07
用什么函数?有例子最好:)
...全文
88 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
SinAngel 2002-11-07
  • 打赏
  • 举报
回复
ULONG theId=0;

if(!::GetWindowThreadProcessId(hWnd,&theId)) return 0;
HANDLE hProc=0;
hProc=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,theId);
if(hProc==0) return 0;
::TerminateProcess(hProc,1);
CloseHandle(hProc);
return 1;
danmao 2002-11-07
  • 打赏
  • 举报
回复
分不够的话可以再加,各位老兄能快点回答吗?
danmao 2002-11-07
  • 打赏
  • 举报
回复
lownr(廖宇雷) ,你好!
看你写的代码真的很舒服。:)
但是我用VC6编译不能通过,我知道了大概的方法。
我还想问一下,如果要像任务管理器一样关闭程序,那么还需要怎么做呢?
lownr 2002-11-07
  • 打赏
  • 举报
回复
要关闭应用程序可以向其主窗口发送WM_DESTROY消息。

那个程序还有个问题,就是得到的结果和按Alt+Tab看到的窗口列表有一点区别,一些特别的窗口被过滤掉了。
danmao 2002-11-07
  • 打赏
  • 举报
回复
great! 我看看。
lownr 2002-11-07
  • 打赏
  • 举报
回复
www.nesgood.com/_develop/download/fts.zip

源代码!
NowCan 2002-11-07
  • 打赏
  • 举报
回复
改成::GetWindow
danmao 2002-11-07
  • 打赏
  • 举报
回复
谢谢SinAngel(纹身女孩) ,虽然说自己解决了,还是谢谢你。晚上结贴。

好了:),我现在有点糊涂。

lownr(廖宇雷)兄的代码需要platform sdk,我已经编译通过了。
但是在我的程序中,因为用的mfc,如果在函数中调用GetWindow(hwnd, GW_OWNER)这样的sdk函数,编译会出现错误。因为在CWnd类中有GetWindow(UINT)的成员函数?!这是怎么回事?


15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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