要开发一个简易启动器代替explorer,如何做到永久置底。

贪食蛇男 2015-03-21 10:27:44
需求是开发一个启动器,第一步是做一个桌面的窗口,永久置底,任何情况下不会覆盖其他窗口,请问如何做到。
HWND hDesktop = FindWindowW(L"ProgMan", L"Program Manager");
if (IsWindow(hDesktop))
{
SetParent(hWnd, hDesktop);
}

这个方法就不要说了,此方法是将自己的窗口贴到explorer上,仍依赖explorer,我要的是不运行explorer
...全文
401 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohuh421 2015-03-24
  • 打赏
  • 举报
回复
http://blog.csdn.net/suiyunonghen/article/details/4560629
xiaohuh421 2015-03-24
  • 打赏
  • 举报
回复
引用 7 楼 hiroyukki 的回复:
[quote=引用 5 楼 xiaohuh421 的回复:] 参考现在桌面程序是怎么做的.
看不出来现在的桌面是怎么做的,使用 spyxx 看到一个最顶层窗口类是 #32769 (桌面) ,但 FindWindow 这个失败了,或许WINDOWS刻意隐藏了它[/quote] 我的意思是参考现在的360桌面, QQ桌面等等软件是怎么做的. 不是叫你看 explorer怎么做的.
贪食蛇男 2015-03-24
  • 打赏
  • 举报
回复
感谢大家回复,解决了,其实非常简单, user32 导出了此API,但是未文档。 通过读 rectos_explorer代码找到了实现关键,看来WINDOWS给出了一组用来实现外壳的相关函数。 SetShellWindow 函数使窗口永久置底(成为一个SHELL),但当多个SHELL运行时会有冲突(可以理解为explorer未运行时可以设置自己的窗口为SHELL windows)。 其他相关函数可以从这里找到: http://stackoverflow.com/questions/2270527/how-to-code-a-new-windows-shell
lougd 2015-03-23
  • 打赏
  • 举报
回复
重启下explorer,在它的CreateWindow下个断点,看下它创建的时候传的啥参数,包括窗口类及其他的一些属性。
贪食蛇男 2015-03-23
  • 打赏
  • 举报
回复
引用 5 楼 xiaohuh421 的回复:
参考现在桌面程序是怎么做的.
看不出来现在的桌面是怎么做的,使用 spyxx 看到一个最顶层窗口类是 #32769 (桌面) ,但 FindWindow 这个失败了,或许WINDOWS刻意隐藏了它
贪食蛇男 2015-03-23
  • 打赏
  • 举报
回复
引用 3 楼 u011391040 的回复:
不运行explorer的话桌面上的图标怎么办?自己画吗?
一个简单的启动器,并不需要绘制各种文件图标,而是提供我的软件中的私有菜单。 使用 CreateDesktop 创建一个桌面环境, SwitchDesktop 切换到此桌面,是一片空白的,此时运行自己的启动器,让用户感觉好像换了个终端一样(事实上类似一个安卓桌面)
xiaohuh421 2015-03-23
  • 打赏
  • 举报
回复
参考现在桌面程序是怎么做的.
Dobzhansky 2015-03-23
  • 打赏
  • 举报
回复
这个叫自定义 shell, 不少开源的, http://en.wikipedia.org/wiki/List_of_alternative_shells_for_Windows http://www.online-tech-tips.com/software-reviews/7-best-windows-alternative-shell-replacement-programs/
lougd 2015-03-21
  • 打赏
  • 举报
回复
自己做桌面的画可以用CreateDeskTop。
lougd 2015-03-21
  • 打赏
  • 举报
回复
不运行explorer的话桌面上的图标怎么办?自己画吗?
lougd 2015-03-21
  • 打赏
  • 举报
回复
我擦。帮顶。
schlafenhamster 2015-03-21
  • 打赏
  • 举报
回复
这个"桌面的窗口"是所有其他窗口的父窗口

15,980

社区成员

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

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