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

0 Members and 1 Guest are viewing this topic.

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 26
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: 26
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 07, 2017, 10:24:44 PM by slore »

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 26
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 47 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 07, 2017, 11:08:46 PM by slore »

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 26
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 42 times.)

Atari800xl

  • Code Baker
  • Sr. Chef
  • ****
  • Date Registered: Feb 2013
  • Posts: 774
Thanks, are you the developer?

Looking good, quick and small! Is there any more info on this you can share? (Docs, sites, examples, etc?)
[EDIT: Source code ?!]

[EDIT: You added two more posts while I was typing this, so more info already!]
« Last Edit: April 07, 2017, 10:08:21 PM by Atari800xl »

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 26
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 34 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 07, 2017, 10:32:02 PM by slore »

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

Lancelot

  • Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7186
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, 11:24:28 AM »

Lancelot

  • Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7186
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, 11:26:52 AM »

Lancelot

  • Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7186
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 21, 2017, 07:31:42 PM »

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 26
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 21, 2017, 07:33:57 PM by slore »

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

Lancelot

  • Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7186
* (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, 01:24:01 AM »

Lancelot

  • Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7186
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, 01:25:54 AM by Lancelot »

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

ChrisR

  • Win7PE SE Baker
  • Grand Chef
  • *****
  • Date Registered: Mar 2011
  • Posts: 2873
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, 04:46:08 PM »

0scar

  • Code Baker
  • Chef
  • ***
  • Date Registered: Jan 2013
  • Posts: 180
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, 04:56:45 PM by 0scar »

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

slore

  • Jr. Chef
  • **
  • Date Registered: Jun 2016
  • Posts: 26
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.

 

Powered by EzPortal