How to encode a new Windows shell?

How can I start coding a new Windows Vista shell?

+4
source share
2 answers

Everything you need to do as a shell has never been documented, so there are some problems with file change notifications, etc. The basics:

  • SystemParametersInfo (SPI_SETMINIMIZEDMETRICS, ... MINIMIZEDMETRICS) with flag (undocumented?) 8
  • Register as a shell (SetShellWindow, SetProgmanWindow, ShellDDEInit, RegisterShellHook, etc.)
  • Hide the welcome screen by setting the signal ("msgina: ShellReadyEvent" and "ShellDesktopSwitchEvent")
  • Run the system startup key, Start menu \ Start and ShellServiceObjects
  • Install Registry Explorer \ SessionInfo

It’s good that you are not the first to write a new shell, if you look around, you can find some unclear required information. Here is a list to get you started:

+12
source

A good place to start would be to learn how to create a command line parser that can symbolize and interpret inputs. There are tools that can help with this, such as ANTLR , or you can try creating your own.

After you have parsed the input, you need to decide what actions to take - starting processes, switching between processes, redirecting output - and making these system calls.

If you are only after a more powerful shell, and not interested in creating it, give PowerShell a try.

+1
source

Source: https://habr.com/ru/post/1301403/


All Articles