4

我将如何编写新的 Windows Vista Shell?

4

2 回答 2

13

从未记录过您作为 shell 需要执行的所有操作,因此文件更改通知等存在一些问题。基础知识是:

  1. SystemParametersInfo(SPI_SETMINIMIZEDMETRICS,...MINIMIZEDMETRICS) 带有(未记录?)标志 8
  2. 注册为外壳(SetShellWindow、SetProgmanWindow、ShellDDEInit、RegisterShellHook 等)
  3. 通过设置信号隐藏欢迎屏幕(“msgina: ShellReadyEvent”和“ShellDesktopSwitchEvent”)
  4. 启动注册表运行键、开始菜单\启动和 ShellServiceObjects
  5. 设置注册表 Explorer\SessionInfo

好消息是,您不是第一个编写新外壳的人,如果您环顾四周,您会发现一些晦涩难懂的所需信息。这是一个帮助您入门的列表:

于 2010-02-17T19:06:40.537 回答
1

一个好的起点是研究如何构建命令行解析器,它可以标记和解释输入。有一些工具可以帮助解决这个问题,比如ANTLR,或者您可能想尝试构建自己的工具。

一旦你解析了输入,你需要决定采取什么行动——启动进程、进程之间的管道、重定向输出——以及进行这些系统调用。

如果您只是追求更强大的 shell 而不是对构建一个感兴趣,请尝试使用PowerShell 。

于 2010-02-16T04:11:35.920 回答