首页
社区
课程
招聘
[旧帖] 任务管理器的 选项 前端显示怎么实现的? 0.00雪花
发表于: 2011-7-5 10:19 8899

[旧帖] 任务管理器的 选项 前端显示怎么实现的? 0.00雪花

2011-7-5 10:19
8899
单纯的
setWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, 03); 不行啊,
有新的程序激活了,就覆盖到我的程序上面了。
但是 任务管理器为什么能实现,总在最前面?
钩子? 没那么复杂吧

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
就是这个,这个是很基础的API,楼主你再看看你的参数是不是错了。或者调试下看看返回值。
API是没有问题的,以前使用过很多次。
2011-7-5 10:40
0
雪    币: 165
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼上的不要误人子弟。

大致代码如下:

WINDOWPLACEMENT placement = { sizeof(placement) };

GetWindowPlacement(SelectedProcessWindowHandle, &placement);

if (placement.showCmd == SW_MINIMIZE)
     ShowWindowAsync(SelectedProcessWindowHandle, SW_RESTORE);
else
      SetForegroundWindow(SelectedProcessWindowHandle);
2011-7-5 13:15
0
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
我误人子弟,,真是好笑,拜托楼上的看清楚楼主的需求好不好,这么毛糙也来写程序。

我特地写了一段程序验证下,其实很简单。我是win7的系统,就2句代码就能看出效果,启动一个记事本,然后运行。

HWND h = FindWindow( NULL, "无标题 - 记事本" );
if( h )
{
	SetWindowPos( h, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW );
}


效果很明显,记事本窗口变成了topmost,始终在一般应用的最上面。楼主还可以使用spy++,看看记事本窗口的style的前后变化。
2011-7-6 09:45
0
雪    币: 246
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
好像就是SetWindowPos 吧。
2011-7-6 09:57
0
游客
登录 | 注册 方可回帖
返回
//