Announcement

Collapse
No announcement yet.

System Shell Replacement

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • System Shell Replacement

    Just because it sounds interesting, I was going to try and replace my Windows system shell (explorer.exe) with another app- just plain old Notepad for a test

    The procedure I've read requires an edit of the registry.

    But nothing I read says what to do when I want to go back to explorer.exe. If I close notepad what happens? How do I get back to explorer.exe.

    Will there be a TaskBar? If Notepad were my shell, how would I start another app?

    What happens is my shell app is not as large as the current resolution?

    I assume I can start another app. So I'd guess my shell needed to be something like an app launcher (I've wrtten one of those)

    Will Windows operate in the background and handle mouse/keyboard stuff?

    When another apps starts, they will work normally, yes? But when they close the new shell will be visible.

    In a video I saw, during restart something other than the new shell came up temporarily. I was expecting only the new shell to come up.

    As you can tell, I don't think I have a good picture of what happens, or doesn't happen, when the shell (explorer.exe) is replaced.

  • #2
    Replace it with regedit instead of notepad. Experiement with it to see what you can and can't do and what does or doesn't happen. Then at least you can still edit it back to explorer before you restart if you're unable to run another program.

    Comment


    • #3
      As a quick test use Task Manager to End Process / explorer.exe..

      You can bring Task Manager back with ctrl/alt/del. Restart explorer via Task Manager's File/New Task (Run...) menu.

      Do more extensive testing in a new user account..
      Rgds, Dave

      Comment


      • #4
        Originally posted by Gary Beene View Post
        As you can tell, I don't think I have a good picture of what happens, or doesn't happen, when the shell (explorer.exe) is replaced.
        Really depends on which shell you are replacing it with and who wrote the shell and how detailed it is. Replacement shells were hugely popular in the mid 90's (Windows 3.1, NT and '95), not so much now, but they used to have their own text editors, COMM program, Audio/Video Player, sometimes even a file manager or paint program, were capable of launching other programs (basically a program manager clone) and capable of launching the default shell (if needed), formatting floppies, etc.

        You can probably find several example shells on Planet Source Code in the VB section, as custom shells were hugely popular with kids and were a popular choice of something to create for beginning programmers wanting to do apps over games.

        I never cared for the full shells, though, I somewhat jumped on the bandwagon back in the day, as I used to run Bubba:

        https://www.techrepublic.com/picture...microsoft-bob/
        https://www.techrepublic.com/blog/cl...microsoft-bob/

        Some really good VB perspective on the last URL.

        Some of the shells were marketed as an "OS", as they replaced everything the EU saw visually of Windows..

        *edit* Here are links to examples on Planet Source Code:

        http://planet-source-code.com/vb/scr...70272&lngWId=1

        http://planet-source-code.com/vb/scr...62138&lngWId=1
        Last edited by Brice Manuel; 11 May 2018, 09:54 PM. Reason: added links
        I am legally blind. Please forgive any typos. I do try and catch as many as I can.

        Comment


        • #5
          Currently there is a free version of Classic Shell available. http://www.classicshell.net/
          For a commercial version of something try Object Desktop for $29 from https://www.stardock.com/products/odnt/
          especially the contained Version of "Fences" cleans up the desktop.
          Lastly you can download the good old "WinFile.exe" here .... https://github.com/Microsoft/winfile/releases
          --Theo Gottwald
          ------------------------------------------------
          76706 Dettenheim * Germany * info@it-berater.org
          ------------------------------------------------
          Joses Forum * Theo's Link Site * IT-Berater.org

          Comment


          • #6
            Originally posted by Gary Beene View Post
            Will there be a TaskBar?
            Nope.

            Originally posted by Gary Beene View Post
            If Notepad were my shell, how would I start another app?
            <Windows button>+R (="Run") is your friend. Simply start explorer.exe and back is your shell.

            Comment


            • #7
              I also love and use ClassicShell, which Theo linked to. But be warned: it's been abandonded by its maintainer (although he open sourced it). And it might or might not work with future Windows 10 or Server updates.

              Comment


              • #8
                Knuth,
                In this case, unlike my question on Web Servers, I do have a goal. I'd like to have my own app be the shell, such as might be the case for a kiosk. So I'm looking to understand more about what it means to have an app be the shell, to know whether the approach would be useful and not fraught with unexpected results.

                Comment


                • #9
                  Originally posted by Gary Beene View Post
                  I'd like to have my own app be the shell, such as might be the case for a kiosk.
                  So many kiosk systems today are HTML5-based. Almost needs to be web-driven since they are so info-driven, or being used as POS'.

                  I ditched Opera after it changed hands, but it used to have a Kiosk mode. May still have it. Could give you something else to play with.
                  I am legally blind. Please forgive any typos. I do try and catch as many as I can.

                  Comment


                  • #10
                    Hello, Brice.

                    In my case, the shell app of interest would not need internet access so an HTML5-based kiosk system would seem like overkill for my needs.

                    Comment


                    • #11
                      Gary, the easiest way is to run the console before you close Exploder so that when you want it back up again, just type in "explorer.exe".
                      hutch at movsd dot com
                      The MASM Forum

                      www.masm32.com

                      Comment


                      • #12
                        In that case I suggest a two.pronged approach: build your shell replacment and along with that a service, whhich monitors if the process is still running and restarts it, if not.

                        Comment


                        • #13
                          So, when a new shell app is used, what is its relationship to the "desktop". Does running a new shell app affect the way in which any of the API work? I don't think I've yet mentally separated the shell app Explorer from the desktop.

                          Can I run Windows with no shell app running at all?

                          So if Explorer is running and I click on an "empty" area, am I clicking on the desktop or am I clicking on the Explorer window? That's a nuance I've not had to think about before.

                          Comment


                          • #14
                            The C++ source for Classic Shell is here: https://github.com/coddec/Classic-Shell/releases
                            3.14159265358979323846264338327950
                            "Ok, yes... I like pie... um, I meant, pi."

                            Comment


                            • #15
                              So, when a new shell app is used, what is its relationship to the "desktop". Does running a new shell app affect the way in which any of the API work? I don't think I've yet mentally separated the shell app Explorer from the desktop.
                              See this Wikipedia article on the Windows Shell interface for the Microsoft Windows OS. It describes the relationship with the 'File Explorer' Windows component that is launched by explorer.exe.

                              Explorer.exe is also responsible for launching the taskbar, the Start menu and part of the Desktop. However, other programs can still access the shell namespace without it.

                              So in your test scenario - where Explorer.exe is replaced with Notepad.exe in:
                              HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Shell
                              - you will see a black screen with the Notepad window on it.
                              The mouse pointer can roam freely over the entire screen but key presses are directed to the Notepad window.
                              Windows Keys + Shortcuts mostly don't work. For example WIndows Key + R just prints 'r' on the notepad workspace. Windows Key with '+' does bring up the Magnifier though.

                              ctrl+alt+del will bring up a Switch user / Task Manager screen so you can launch Task Manger then 'Run new task' (eg explorer.exe) via it's File Menu.

                              However you can also use the Notepad File/Open menu to get a File Open Dialog displayed wherein you can launch executables by browsing 'All Files' and using Right-Click / Open
                              Rgds, Dave

                              Comment


                              • #16
                                Dave gave already most of the answers.

                                In a nutshell, "Desktop" is simply a special folder (two actually). Everything you see on your desktop (links to files/folders, files/folders etc.) is a file that either exists in %UserProfile%\Desktop (everything in their is only on the desktop on the currently logged in account) or %AllUsersProfile%\Desktop (anything in there is on the desktop on all accounts). Anything you copy/move into these two folders will appear on the desktop "automagically". So placing a link to explorer.exe in there will let you start Explorer from that desktop icon.

                                So say you replace explorer.exe as the shell with a stub program that does nothing, you end up with your current desktop but nothing else - no taskbar/Windows menu.

                                Comment


                                • #17
                                  Knuth

                                  I created a test user on my WIndows 10 Pro machine and tested after making a few changes in the registry as per below.

                                  I do not see the users desktop - only a black screen behind whatever - when explorer is replaced by anything.
                                  (The current users desktop is only displayed when explorer.exe is run, via Task Manager for example).

                                  Steps to setup a test account:

                                  Define the administrative shell as the default shell in the system and change the alternate
                                  user account's registry keys to point to a second shell.

                                  There are three keys that must be set up. The first two are generic for all users.
                                  This article refers to the keys as "Key1," "Key2," and "Key3" for simplicity.

                                  When the user logs on, Windows uses Key1 to determine which key holds the shell information.
                                  Normally, Windows uses Key2 next.
                                  However, if the value of Key1 is changed to USR:Software\Microsoft\Windows NT\CurrentVersion\Winlogon
                                  Windows will use Key3 for the user logging on to start the user's specific shell.

                                  "Key1".
                                  When Windows XP starts, Key1 points to the default Windows shell.
                                  To use an alternate shell the key's value is changed, directing Windows to look in the
                                  HKEY_Current_User key to start a specific shell for the user logging on.
                                  If the specific user shell is not found, Key2 is called and a default shell is started.

                                  Key: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini\boot\Shell
                                  Type: REG_SZ
                                  Value: SYS:Microsoft\Windows NT\CurrentVersion\Winlogon
                                  Change: USR:Software\Microsoft\Windows NT\CurrentVersion\Winlogon

                                  "Key2".
                                  Provides a default shell if the user shell application cannot be found.
                                  In a two user setup, Key 2 is typically set to the shell application for the Admin default shell.

                                  Key: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
                                  Type: REG_SZ
                                  Value: Explorer.exe (or this can be a different default application)

                                  "Key3".
                                  Sets up a shell for the current user ('logged-on' user).
                                  Thus, the only way to change a particular user's shell is to log on to the user account and create this registry entry.

                                  Key: HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
                                  Type: REG_SZ
                                  Value: **account shell.exe**. eg:"notepad.exe" or "cmd.exe". The name of the account shell application.

                                  Sign out and then back in to the test user account to see the results.
                                  Rgds, Dave

                                  Comment


                                  • #18
                                    Gary, after noticing a tab in windows explorer for windows 7 to create a "New Folder" I can tell you
                                    I now see why the new version of zipping in Win 10 left out empty folders.
                                    I think MS traded created 2 problems. I am now thinking of a different shell also for our users.
                                    p purvis

                                    Comment

                                    Working...
                                    X