Search code examples
c++windows-vistawindows-shell

How to code a new Windows Shell?


How would I go about coding a new Windows Vista Shell?


Solution

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

    1. SystemParametersInfo(SPI_SETMINIMIZEDMETRICS,...MINIMIZEDMETRICS) with (undocumented?) flag 8
    2. Register as the shell (SetShellWindow,SetProgmanWindow,ShellDDEInit,RegisterShellHook etc)
    3. Hide welcome screen by setting a signal ("msgina: ShellReadyEvent" and "ShellDesktopSwitchEvent")
    4. Start registry run key, start menu\startup and ShellServiceObjects
    5. Set registry Explorer\SessionInfo

    The good thing is, you are not the first to write a new shell, if you look around, you can find some obscure required info. Here is a list to get you started: