作者archon (三脚猫的把戏)
站内Programming
标题[问题] 如何得知目前正在执行的应用程式??
时间Thu Dec 6 19:09:47 2007
像是 Windows 下按 ctrl-alt del 的时候会跑出来的工作管理员,
可以看到目前有多少应用程式正在执行中,
这些资讯要如何从程式中得知呢?
我是在 VS 2005 下写 MFC,
现在找到一些头绪,但似乎观念上有点不太对...
大概像底下这样子:
CWnd *p_ActiveWindow;
CWnd *p_PreviousWindow;
// 找到目前的 CWnd
p_ActiveWindow = p_ActiveWindow->GetActiveWindow();
// 找下一个 CWnd
p_PreviousWindow = p_ActiveWindow->GetNextWindow(GW_HWNDNEXT);
// 一直找下去...
while(p_ActiveWindow!=p_PreviousWindow) // <-- 这个判断应该有问题...
{
p_PreviousWindow = p_PreviousWindow->GetNextWindow(GW_HWNDNEXT);
}
======
有以下几个问题...
1. GetActiveWindow() 找到的是 [Windows 工作管理员] => [应用程式]
里面所显示的那些应用程式吗?
2. 如果我一直用 GW_HWNDNEXT 找下去,到最未端後再 Next 会回到最前头吗?
我这麽做是因为我不知道第一个 CWnd 怎麽找,也不知道总共有几个,
有没有函式能够帮我做到这两件事呢?
3. 纪录程式名称的字串(?)藏在 CWnd 的哪里呢?
我在 MSDN 里找到一个函式,CWnd::GetWindowInfo,
似乎可以把资料传进 WINDOWINFO structure 里,
但是要去找 WINDOWINFO 时却是一片空白...
======
有劳大家了,黑龙江边裸身跪谢... <(_ _)>
--
追根究底所得到的东西,是失望的观众,以及狼狈的魔术师...
De'Ring Practice
http://www.im.tv/vlog/Personal/623262/2093392
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.42.81