☆帮我想想 老板键(隐藏IE) 的原理。谢谢了!!!!

uoyevoli 2004-12-31 09:14:40
有个软件好像叫“上网助手”,那个功能叫“老板键”。
比如你设定 alt+空格 为老板键,那么只要你点这个键组合,所有打开的IE浏览器窗口全部隐藏。

隐藏得非常彻底,不但在任务条中不显示,而且Windows的“任务管理器”也看不到它们的进程。但是它们绝对没有关闭,因为你过会儿再按这两个键,那些被隐藏的IE窗口全都恢复了!比如隐藏前,你在发帖,写了一半,隐藏了,再恢复后你可以接着写!!

2000 xp下都可以用。

大家帮我分析一下,它使用了什么技术来隐藏进程的??
...全文
1256 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
uoyevoli 2005-01-07
  • 打赏
  • 举报
回复
谢谢大家,解了。
ncucf 2005-01-05
  • 打赏
  • 举报
回复
隐藏进程,其实没多大必要,如果到了那种程度,老板去看你的任务管理器,说明他对你已经很有疑心了,我觉得这种防范太夸张了点!

其实排除隐藏进程,其他几个功能还是很好实现的——关键是怎么枚举出ie窗口,那种效率更高一些!
我想单纯的enumwindow肯定很容易导致系统没响应,而且太好资源,用com接口获取所有ie窗口,要好一些!
wlzqi 2005-01-04
  • 打赏
  • 举报
回复
不能下载??
我可以的
shicheng521 2005-01-03
  • 打赏
  • 举报
回复
下在能下载了
shicheng521 2005-01-03
  • 打赏
  • 举报
回复
wlzqi(wlzqi)
做人要厚道,怎么下不下来呀
有空的话给我发一份吧,
shicheng521@163.com
uoyevoli 2005-01-03
  • 打赏
  • 举报
回复
倒!!
原来 上网助手 也没有在任务管理器隐藏!!!!!
一语惊醒梦中人啊!!!!!!!!!!

一会下线,把垃圾3721的上网助手删除了,自己写个撒!!!!!!!!!!!!!!
DentistryDoctor 2004-12-31
  • 打赏
  • 举报
回复
RegisterServiceProcess可以实现隐藏进程。
wlzqi 2004-12-31
  • 打赏
  • 举报
回复
任务管理器里看不到!!这点上网助手也没实现.
其于的我的回答都可以实现
uoyevoli 2004-12-31
  • 打赏
  • 举报
回复
我是楼主。
呵呵,谢谢大家捧场。 大家提的建议我会好好看看的。

枚举窗口,全局热键,ShowWindow 这些我会。怎么说我对常用的API还是熟悉的:)

关键是 如何隐藏窗口,在任务管理器 和任务条 里也看不到。要在2000 xp下能用。Win9X系统下可以通过调用RegisterServiceProcess 这个我也用过,关键是在NT内核下的实现。

再次谢谢大家。
qaz1984 2004-12-31
  • 打赏
  • 举报
回复
up
ncucf 2004-12-31
  • 打赏
  • 举报
回复
拦截api函数可以实现进程隐藏!
不过做这个功能,好像也没什么特别大的必要啊!

ie窗口的枚举,应该是可以用com接口完成的!



wlzqi 2004-12-31
  • 打赏
  • 举报
回复
ASSERT_VALID (AfxGetMainWnd ());
CWnd* pWnd=AfxGetMainWnd () ->GetWindow (GW_HWNDFIRST);

while (pWnd)
{
if (pWnd ->IsWindowVisible()
&& pWnd ->GetWindowTextLength ()
&&! pWnd ->GetOwner ())
{

char lpClassName[255];
//获取类名
if (::GetClassName(pWnd->GetSafeHwnd (), lpClassName, 255))
{
if ( lstrcmpi (lpClassName , "IEFrame" ) == 0 )
{
::ShowWindow (pWnd->GetSafeHwnd (),SW_HIDE);
}
}
}

pWnd=pWnd ->GetWindow(GW_HWNDNEXT);
}

注意在隐藏之前要保存句柄,以便恢复.
最后用钩子判断Alt+Space

最后效果和上网助手的老板键效果一样。
kchai1 2004-12-31
  • 打赏
  • 举报
回复
ie窗口的问题可以通过COM实现,不用枚举所有窗口
Mr-Chen 2004-12-31
  • 打赏
  • 举报
回复
应该是通过驱动实现的,否则在任务管理器里是不会隐藏的
tangshiping 2004-12-31
  • 打赏
  • 举报
回复
ShowWindow()隐藏后在任务管理器里还是存在的。大家能不能不要重复的说这些没有建设性的意见啊拜托
oyljerry 2004-12-31
  • 打赏
  • 举报
回复
EnumWindow枚举窗口
ShowWindow()隐藏
AMDCPU 2004-12-31
  • 打赏
  • 举报
回复
呵呵,进来学习
kugou123 2004-12-31
  • 打赏
  • 举报
回复
枚举所有窗口,然后逐个隐藏。
原理可以参考:
http://www.vckbase.com/document/viewdoc/?id=354
有源码下载
koko1998 2004-12-31
  • 打赏
  • 举报
回复
这个问题好,学习
tangshiping 2004-12-31
  • 打赏
  • 举报
回复
“如何在“任务管理器”中隐藏进程”
Win9X系统下可以通过调用RegisterServiceProcess API这个API函数将进程注册为一个服务模式的进程,这样在Win9X系统下用Ctrl+Alt+Del调出的任务管理器中将不会出现这个进程了.RegisterServiceProcess API函数存放于系统内核Kernel32.dll中.具体声明如下:
DWORD RegisterServiceProcess(
DWORD dwProcessId, //服务进程的进程标志,如果为NULL表示当前进程
DWORD dwType //如果参数为RSP_SIMPLE_SERVICE 表示注册当前进程
//如果参数为RSP_UNREGISTER_SERVICE 表示取消当前进程的注册
);
函数调用成功返回1,否则返回0
win2000下的我还不知道,自己查查,应该很好找
加载更多回复(20)

16,467

社区成员

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

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

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