Topic: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim  (Read 2169 times)

0 Members and 1 Guest are viewing this topic.

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 29
What is me?
a portable shell program(desktop, startmenu, quick launch, taskbar, notifyarea, clock), whitch can run in Windows XP, 2003(need rebuild),
Windows 7, 8, 8.1, 10, Windows Server 2008, 2012, 2016 and the Windows Preinstallation Environment(WinPE), and both x86, x64 environment.

ila_rendered

How to use?
in normal windows:
1. terminate the origin shell.
hold CTRL+SHIFT and right click the taskbar, select the "Terminate Explorer". (or force end in taskmgr.exe)

2. run "WinXShell.exe"

in PE:
press SHIFT+F10 to startup cmd.exe,
just run "WinXShell.exe -winpe"

this will a). auto terminate the origin "shell" - wallpaperhost.exe,
and b). set the environment variable USERPROFILE to X:\Users\Default if USERPROFILE is X:\Windows\system32\config,
and c). handle the shutdown/reboot button in startmenu with wpeuitl.exe(see WinXShell.jcfg).



slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 29
can I use a 3rd-part StartMenu?
Yes,but I think only Classic Shell(<= 4.2.5) can be.

ila_rendered

hide origin start icon with WinXShell.jcfg
Code: [Select]
  "JS_STARTMENU":
  {
    "start_icon":"empty",
    "start_padding":8,
    ...
  }

and the origin sample startmenu item can be set with:

Code: [Select]
"JS_STARTMENU":
  {
   "nosettings":true,
   "nobrowse":false,
   "nobrowse_network":true,
   "nofind":true,
    "norun":true,
    "nologoff":true,
    "norestart":false,
    "noshutdown":false,
    "noterm":true
   }
« Last Edit: April 08, 2017, 03:24:44 AM by slore »

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 29
Is there a option for File Explorer?
Yes.

you can use explorer++.exe, XYplorer.exe, TotalCommand.exe, etc.

WinXShell.jcfg:
Code: [Select]
  "JS_FILEEXPLORER":
  {
    "3rd_filename":"##{JVAR_MODULEPATH}\\explorer++.exe",
  },
  "JS_DESKTOP":
  {
    "3rd_open_arguments":"\"%s\""
  },
  "JS_QUICKLAUNCH":
  {
    "3rd_open_arguments":""
  }

this config with handle the double click on desktop(This PC/Recyle Bin/folder) and explorer icon on QuickLaunch.

if 3rd_filename is "" then will use a built-in file explorer.
the built-in file explorer is USE a OpenFileDialog window to simulate it.
it very functional but need some dependencies.

NewOpenDlg:
ADDITEMS.txt
Code: [Select]
Windows\System32\ExplorerFrame.dll
Windows\System32\shellstyle.dll
Windows\System32\StructuredQuery.dll

;some version of WIN10 need this file,
;some version will broke if have this file.
Windows\System32\edputil.dll


NewOpenDlg.reg:
Code: [Select]
Windows Registry Editor Version 5.00

;explorerframe.dll
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{056440FD-8568-48e7-A632-72157243B55B}]
@="Explorer Navigation Bar"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{056440FD-8568-48e7-A632-72157243B55B}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,65,00,78,00,\
  70,00,6c,00,6f,00,72,00,65,00,72,00,66,00,72,00,61,00,6d,00,65,00,2e,00,64,\
  00,6c,00,6c,00,00,00
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{AE054212-3535-4430-83ED-D501AA6680E6}]
@="Shell Name Space ListView"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{AE054212-3535-4430-83ED-D501AA6680E6}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,65,00,78,00,\
  70,00,6c,00,6f,00,72,00,65,00,72,00,66,00,72,00,61,00,6d,00,65,00,2e,00,64,\
  00,6c,00,6c,00,00,00
"ThreadingModel"="Apartment"
;@="X:\\Windows\\system32\\explorerframe.dll"

you can do this(add to boot.wim) by yourself, or just download the patch and put this in wimbuilder's project folder,
wimbuilder will auto add the to boot.wim.
* NewOpenDlg.zip (1.31 kB - downloaded 69 times.)

FYI:
this also make "Browser..." work for Run dialog, and taskmgr.exe -> File -> New Task dialog,
and replace the Open File Dialog in new style for notepad.exe.
« Last Edit: April 08, 2017, 04:08:46 AM by slore »

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 29
I can't drop the icon on the Desktop in Win10 PE!
I can't drop the file from desktop to cmd.exe, notepad or other apps!


DragAndDrop-Patch:
ADD_ITEMS.txt
Code: [Select]
Windows\System32\d3d11.dll
Windows\System32\DataExchange.dll
Windows\System32\dcomp.dll
Windows\System32\dxgi.dll
Windows\System32\ksuser.dll

DragDrop.reg:
Code: [Select]
Windows Registry Editor Version 5.00

;dataexchange.dll
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,61,00,\
  74,00,61,00,65,00,78,00,63,00,68,00,61,00,6e,00,67,00,65,00,2e,00,64,00,6c,\
  00,6c,00,00,00
"ThreadingModel"="Both"

;need update ACL rights for offline importing.
;or you can add this on WinPE startup.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\Extensions]
"DragDropExtension"="{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}"

* DragAndDrop.zip (1.02 kB - downloaded 66 times.)

Atari800xl

  • Code Baker
  • Sr. Chef
  • ****
  • Date Registered: Feb 2013
  • Posts: 787
...
« Last Edit: October 26, 2017, 03:28:29 PM by Atari800xl »

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 29
when I select the "New" sub menu from contextmenu, it it freeze in Windows 10.0.15063 PE(Creator Update RTM)!

I can write a shell  extension dll to fix that, but maybe MS will fix in sometime.
Let's alternate the "New" with bat file and reg file.

WinXNew-Patch:
Code: [Select]
        hiderun_x64.exe        4kb - hiderun program(x64)
        hiderun_x86.exe        3kb - hiderun program(x86)
        INIT.bat                     wimbuilder's PATCH script, copy hiderrun.exe and WinXNew.bat to System32 directory.
        WinXNew.bat             create "New" folder or file batch file. judge file name, and create them.
        WinXNew.reg             create our "New" Sub Menu.

WinXNew.reg:
Code: [Select]
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew]
"MUIVerb"="New(&W)"
"SubCommands"=""
"NODEFAULT"=""
"Position"="Bottom"
"SeparatorAfter"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell]

[HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell\0folder]
"MUIVerb"="Folder(&F)"
"icon"="shell32.dll,3"
"SeparatorAfter"=""
"CommandFlags"=dword:00000040

[HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell\0folder\command]
@="hiderun.exe WinXNew.bat folder \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell\1.txt]
"MUIVerb"="Text Document"
"Icon"="imageres.dll,-102"

[HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell\1.txt\command]
@="hiderun.exe WinXNew.bat .txt \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell\2.bmp]
"MUIVerb"="Bitmap"
"Icon"="imageres.dll,-70"

[HKEY_CLASSES_ROOT\Directory\Background\shell\WinXNew\shell\2.bmp\command]
@="hiderun.exe WinXNew.bat .bmp \"%V\""


WinXNew.bat:
Code: [Select]
@echo off
cd /d "%~2"

set type=%1
set folder=Folder
set ".txt=Text Document"
set .bmp=Bitmap

call set "filename=New %%%type%%%"
set "newfilename=%filename%"
if not [%type%]==[folder] (
  set "newfilename=%filename%%type%"
)

set /a idx=1
:CHECKNAME
set /a idx+=1
if not exist "%newfilename%" goto :CREATION
call :GETNEWNAME %idx%
goto :CHECKNAME


:CREATION
rem "%newfilename%"
if [%type%]==[folder] (
  mkdir "%newfilename%"
) else (
  cd.>"%newfilename%"
)
goto :EOF

:GETNEWNAME
set "newfilename=%filename% (%1)"
if not [%type%]==[folder] (
  set "newfilename=%newfilename%%type%"
)
goto :EOF

WinXShell.exe won't auto create the cascade menu, so need remove the comment in WinXShell.jcfg to use this in Desktop's context menu.
Code: [Select]
  "JS_DESKTOP":
  {
    "cascademenu": {
      "WinXNew":"Directory\\Background\\shell\\WinXNew"
    }
  }

* WinXNew.zip (4.31 kB - downloaded 51 times.)

FYI:
remove system "New" Sub Menu.
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shellex\ContextMenuHandlers\New]

add "~reserved~" to
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew]
file explorer won't be freeze, but just has a empty sub menu.(will load HKCR's ShellNew key for create sub menu)

add "~reserved~", "Classes" to
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew]
file explorer won't be freeze, but just has no sub menu.(won't load HKCR's ShellNew key)
« Last Edit: April 08, 2017, 03:32:02 AM by slore »

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #6 on: September 21, 2017, 02:30:12 PM »

Lancelot

  • Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7509
Hi slore,

can we have a separate "Shut Down" utility.  :cool:

:turtle:


Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #7 on: September 21, 2017, 04:24:28 PM »

Lancelot

  • Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7509
a portable shell program(desktop, startmenu, quick launch, taskbar, notifyarea, clock), whitch can run in Windows XP, 2003(need rebuild),
When you rebuild, We can test on Gena.  :thumbsup:

Let us know when you attach rebuild.  :wink:

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #8 on: September 21, 2017, 04:26:52 PM »

Lancelot

  • Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7509
Hi slore,

I just test WinXShell on Win10PESE,
It looks nice  :great:

one minor thing, If you can add desktop.ini support to WinXShell
WinXShell can support MultiLanguages at StartMenu

See pictures:

ila_rendered

ila_rendered

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #9 on: September 22, 2017, 12:31:42 AM »

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 29
Hi, Lancelot,

as explorer is so widely, i thought no one will metion this topic.
thinks for reading and testing it.
add explorer is big process for me, who just maintain his own one PC,
i make a simple toy(zero dependencies for boot.wim) for myself.
there are a lot of to-do things,but no documents to learn, such a hard work.

Quote
can we have a separate "Shut Down" utility.
the UI things is designed to be "separate" - the html-like view,message,even the action can be modified by yourself.
with -ui option to use, see(but this a experiment feature):
http://theoven.org/index.php?topic=2066.msg23089#msg23089

* (done)Shutdown UI
* (done)Resolution UI
* (to-do)my computer's property tab. (show CPU,Memory info in a simple way, zero dependencies)
* (to-do)volume settings like normal Win10.
* (to-do)WIFI like normal Win10. (I think the PENetwork should do this.)
* (to-do)modern WIn10 start menu.

Quote
When you rebuild, We can test on Gena.
I don't know Gena so far, seems cool.
if I need build for adapting to Windows 10 RS3, I will make a xp/2003 version.

Quote
WinXShell can support MultiLanguages at StartMenu
sorry, as WinXShell can replace startmenu with Classic Shell(<= 4.2.5), I have no plan for this.
if have time to create the modern start menu, i will consider  support MultiLanguages.
(as WinXShell is just used by myself no the others,  *MultiLanguages support* was no priority in plan.  )
« Last Edit: September 22, 2017, 12:33:57 AM by slore »

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #10 on: September 22, 2017, 05:55:33 AM »

Lancelot

  • Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7509
* (to-do)my computer's property tab. (show CPU,Memory info in a simple way, zero dependencies)
There is one of my favorite, CoolMon 1 plugin available on all projects
Downloads\AppYGS\System Tools\HW Info\"CoolMon 1"

I feel it works with zero boot.wim dependencies as you expect,
 and have very cool features.  :wink:

It may give you ideas.

Tip:
There are many applications plugins at \Downloads\** that we find useful for a PE user,
some may take your interest and shorten your to-do list.


there are a lot of to-do things,but no documents to learn, such a hard work.
I know how you feel.
I have a never ending but always increasing to-do things for projects with no documents to learn and a hard work.

Just an advice,
Let wheels always turn,
even slowly  :thumbsup:

See You around
:turtle:

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #11 on: September 22, 2017, 06:24:01 AM »

Lancelot

  • Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7509
Quote
When you rebuild, We can test on Gena.
I don't know Gena so far, seems cool.
if I need build for adapting to Windows 10 RS3, I will make a xp/2003 version.
Just download
Gena Appetizer (69.19 MB)
http://gena.cwcodes.net/Compressed/
extract to D:\Oven
open builder and click Big Blue button.

After once downloading 2k3 iso from ms, it will build in some minutes.  :great:

:turtle:
« Last Edit: September 22, 2017, 06:25:54 AM by Lancelot »

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #12 on: September 22, 2017, 10:24:56 AM »

ChrisR

  • Win7PE SE Baker
  • Grand Chef
  • *****
  • Date Registered: Mar 2011
  • Posts: 2915
Hi Slore,
A little while WinXShell is here but I had not seen I was elsewhere.
It's my first test with a basic x64 build.
It is just Awesome :great:
Keep up the good work :thumbsup:

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #13 on: September 23, 2017, 09:46:08 PM »

0scar

  • Code Baker
  • Chef
  • ***
  • Date Registered: Jan 2013
  • Posts: 189
Works OK but  it frezees 1 minute or so when  right clicking till the context menu  shows up.
Tested  witrh win7pe  x86.
 :smile:
« Last Edit: September 23, 2017, 09:56:45 PM by 0scar »

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #14 on: September 24, 2017, 01:30:14 AM »

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 29
hi, Oscar
thank for testing. Yes , that is a known issue.
I use the newest Windows SDK Interface for desktop backgroud menu(Minimum supported client Windows 8 as msdn said),
I should check the os version, create menu with different IF.
I old one which worked in Windows 7 that like right clicking on the "desktop" folder, there aren't view, arrengment.

as WINXP,WIN7,8,8.1 PE can use origin explorer, if the origin explorer can work, there is no need for third-party shell,
I barely use and maintain Win10 PE. because maybe some day, RS3,RS4, it's hard to make origin explorer work, like the modern UI (startmenu, network settings).
there was a BS explorer, but this one hasn't a x64 version, and no maintenance.

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #15 on: December 04, 2017, 11:56:27 AM »

dazza

  • Jr. Chef
  • **
  • Date Registered: Jan 2017
  • Posts: 13
Hi Slore

Great little shell - really like it, and is working well for me in a quick Windows 10 PE I created using Windows 10 ADK 1709

Can I please ask, is the start menu, taskbar, desktop an app you have coded / created yourself, if so using what? or is it a 3rd party tool you are using to do it - as would really like to create something similar myself, just as a programming exercise / fun project initially

Thanks again

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #16 on: December 04, 2017, 10:18:52 PM »

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 29
hi,dazza

what you want is be here.
http://www.foxplanet.de/explorer/

the basic shell is implemented with open source.
I just fixed some bug, adapt to the new WINDOWS,
and make it looks modern. now  the WIFI connection settings is doned.
take time to finish the tray status icons.
« Last Edit: December 05, 2017, 10:28:09 PM by slore »

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #17 on: December 05, 2017, 03:22:47 AM »

teik

  • Jr. Chef
  • **
  • Date Registered: Nov 2016
  • Posts: 63
Hi Slore,
Are you creating some Wi-Fi settings like the ones in the image? They are visually perfect. I'm happy with your idea. I do not plan much but I will be happy to help you in whatever is necessary. As soon as I upload it I will try and comment on how it works. The idea is really brilliant.
I love those Wifi settign.
regards

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #18 on: December 05, 2017, 07:37:45 AM »

dazza

  • Jr. Chef
  • **
  • Date Registered: Jan 2017
  • Posts: 13
Hi Slore

Thank you very much for you reply and the link, I shall read more about it later

Look forward to seeing your updated version with Wi-Fi and status icons etc

Great work


 

Powered by EzPortal