我将如何编写新的 Windows Vista Shell?
问问题
5247 次
2 回答
13
从未记录过您作为 shell 需要执行的所有操作,因此文件更改通知等存在一些问题。基础知识是:
- SystemParametersInfo(SPI_SETMINIMIZEDMETRICS,...MINIMIZEDMETRICS) 带有(未记录?)标志 8
- 注册为外壳(SetShellWindow、SetProgmanWindow、ShellDDEInit、RegisterShellHook 等)
- 通过设置信号隐藏欢迎屏幕(“msgina: ShellReadyEvent”和“ShellDesktopSwitchEvent”)
- 启动注册表运行键、开始菜单\启动和 ShellServiceObjects
- 设置注册表 Explorer\SessionInfo
好消息是,您不是第一个编写新外壳的人,如果您环顾四周,您会发现一些晦涩难懂的所需信息。这是一个帮助您入门的列表:
- https://web.archive.org/web/2019/http://www.lsdev.org/doku.php
- http://bb4win.cvs.sourceforge.net/bb4win/blackbox/Blackbox.cpp?revision=1.49&view=markup
- http://xoblite.net/source/Blackbox.cpp.html
- http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/
- http://www.geoffchappell.com/viewer.htm?doc=studies/windows/shell/explorer/index.htm&tx=36
于 2010-02-17T19:06:40.537 回答
1
一个好的起点是研究如何构建命令行解析器,它可以标记和解释输入。有一些工具可以帮助解决这个问题,比如ANTLR,或者您可能想尝试构建自己的工具。
一旦你解析了输入,你需要决定采取什么行动——启动进程、进程之间的管道、重定向输出——以及进行这些系统调用。
如果您只是追求更强大的 shell 而不是对构建一个感兴趣,请尝试使用PowerShell 。
于 2010-02-16T04:11:35.920 回答