浏览 6841 次
锁定老帖子 主题:隐藏桌面上任务栏和开始按钮的小例子
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-10-15
最后修改:2010-10-26
原理很简单。在Windows里任务栏或者开始按钮也是窗口,就是先得到窗口句柄,然后调用WindowsAPI函数,ShowWindow,参数显示为隐藏即可。 隐藏任务栏的代码如下:
HWND hwnd; hwnd = FindWindow("Shell_TrayWnd", NULL); ShowWindow(hwnd, SW_HIDE); UpdateWindow(hwnd);
隐藏开始按钮的代码如下:
HWND hwnd; hwnd = GetDlgItem(FindWindow("Shell_TrayWnd", NULL), 0x130); ShowWindow(hwnd, SW_HIDE); UpdateWindow(hwnd);
Shell_TrayWnd 是任务栏的类 这些都可以用VC++6.0下面的Spy++ 工具捕获到。 你可以用它自己捕获任何一个你想要的窗口或者按钮。
PS:编译可能会出现一个错误: fatal error LNK1104: cannot open file "stlport_vc6_static.lib" 解决办法: 工程 -> 设置 -> C/C++ -> 代码生成 -> 运行库设为 Debug Multithreaded Dll 即可。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-03-20
这个不知道有什么用,为什么不直接更改WINDOWS的设置呢,如果只是这么隐藏的话,那你要保证你的程序必须要比explorer.exe启动的更早,才好,不然会出现闪一下的问题
|
|
返回顶楼 | |
发表时间:2011-04-06
问题是,隐藏任务栏的同时把窗口也隐藏了,有没办法不隐藏窗口,只隐藏任务栏
|
|
返回顶楼 | |
发表时间:2011-04-08
我的问题是Shell_TrayWnd,根本就返回不了句柄
如果能返回,加下下面的就可以了 if (NULL == hShellTrayWnd) //return NO_SHELLTRAYWND; return -2; hTrayNotifyWnd = FindWindowEx(hShellTrayWnd, NULL, ( "TrayNotifyWnd "), NULL); if (NULL == hTrayNotifyWnd) //return FAILURE; return -1; hToolbarWindow32_Notify = FindWindowEx(hTrayNotifyWnd, NULL, _T( "ToolbarWindow32 "), NULL); if (NULL == hToolbarWindow32_Notify) //return FAILURE; return -1; *hwnd = hToolbarWindow32_Notify; |
|
返回顶楼 | |