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

0 Members and 1 Guest are viewing this topic.

slore

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

Atari800xl

  • Code Baker
  • Sr. Chef
  • ****
  • Date Registered: Feb 2013
  • Posts: 761
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: 23
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 8 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 »

 

Powered by EzPortal