Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - slore

Pages: [1] 2
Hi, ied206

I haven't used VBScript, what is the advantages of using VBScript's syntax?

why should we recreate the wheels again(new syntax)? with that time we can do more other things.

I was used C#/WPF for a little time, it very easy and fast to do the UI things,this is good.
but I hope that just do the *UI* option things, not the *CORE* part.

the *CORE* part I would like a interpreter language, as ZYX said
you could write and modify scripts and you could run them immediately after that without waiting for some kind of compilation
and compare to create new syntax, the Well-known language is better, the learn time is short,and many people may have the skill with the language.
the batch and vbscript are the built-in language in Windows(powershell is complicated), that's why my builder is use them.
if for both unix/windows, I perfer to python or ruby, there are so may pulgins and developers.

as a programer, I never see such mess grammar but WB,even the pecmd's script syntax is bad for the users,
they are created for the developers not the users but no other replacement.

Hi, Martt

%Var1% = 153
%Var2% = 3

If %Var1% < %Var2% ==> True, string compare
If Math(%Var1% < %Var2%) ==> False, numeric compare

even simple equal expression will need write with a function(*MATH*)?

why %Var1% = "153" <- Var1 is string type, %Var2% = 153 <- Var2 is integer type,
more flexible, supports to_i, to_s for converting them by userself in some case.
%Var2% = %Var1%.to_i => Var2 is integer type
%Var2%.to_s => be string object

"10.0" + 16053 => error? 16063.0?
"10.0." + 16053 = error  or auto  "10.0.16053"
"10.0.".to_i + 16053 = 16063.0
"10.0" + 16053.to_s => 10.016053

I do not agree with you on the batch+vbs solution. It will work. But on a single project that supports multiple Windows version you do need a lot more.

if i need supoorts multiple windows version, my builder is use the origin batch var(%environment variable%),if,calculator(set /a) for that.
(I think most people will use batch file the autoit, the extend batch command is be written by themself.)

also the builder self is written by batch file, any one can extend with some program languge by themself.(python,ruby,autoit)
the 90% code just was written in a weekend,  development and maintenance is easy and fast with dynamic script.


vbscript is do the convert *.reg's orgin HKLM => HKLM\PE_SOFT, HKU =>  HKLM\PE_DEFUALT,
or some thing is easier(deal with +MUI in additems.txt which will auto copy the mui file) than batch.

So if someone is writing a replacement builder, why not change the syntax as well. Sure, it will break everybodies projects including mine, but it also gives a lot of new and better commands.

I had written simple batch+vbscript builder for myself to create PE with simple  additems.txt, origin *.reg files.
I don't know why we need write scripts(plugins) for just adding/deleting files and update registry.

The above *MATH* things are realy necessary?

maybe need some *If*  for dealing with different version OS, or arch,
maybe need some *String/File* things for updating pecmd.ini,
that's all.

If you recreate one, make a better easy-to-use builder rather than a WB compatible builder.

hi, noelBlanc

so quick reply.

>just write 100 lines code in 1 or 2 hours
EnumWindow,check window state and save them, then ShowWindow(Sync), some thing like this,
for me that is easy rather than ~"Windbg" things.~

>- do you modify the checksum of the file explorer after modify it ? I suppose yes but you don't say that. so i ask ....
yes, 0f85xxxxx -> 0f84xxxxx, and PEchecksum.exe explorer_modifed.exe.

- can you see with procmon64 some thing or make a save file .PML ?
I will try this.

>note : as i understand the code and my test, it is also the first jne that must be disable not only the second. The flag is base + 2F9 in build 14393. And i don't know the role of Base+2F8. 
sorry, I had a typo on it.I was changed the first jne not the second one.
(learn the windbg skill from you, I follow the Tray::ModeChange message get the BASE+171h in my version,and it is the first check in Tray::_RaiseDesktop)

>use a exe and hook.dll to do that "dynamicaly" and put it on early posts
I change the BASE+171h,or the jne to je in  "dynamicaly" with Visual Studio, That also worked.

>twice 6  "NOP" ( one for each jne ) seems to me to be better because "je" need to calculate the "delta" of offset.
I will try the 909090909090

thank again, that you is sharing your research(also the process), and How to  disassemble explorer.exe with windbg. :thumbsup:


nice to see the problem(ShowDesktop) has perfect solution! :thumbsup:

Yes, winPeSe got it since a long time with the use of  "wind.exe and MsgHook.dll".
And Yes, this solution is not a good idea because with the next version of winpe, the address will be modify.
You wrong, wind.exe will deal with all version.

I'm not good as your in disassembling program, I just debug explorer.exe with
Visual Studio, find the message.
I hook the massage, and MinimizeAll/UnMinimizeAll the Windows with my code.
(compare to make origin explorer function work, this is easy for me, just write 100 lines code in 1 or 2 hours.)

but follow your description I try and got the same thing in 10.0.15063.  :great:
(code has a bit different.)

I want make a hard patch to switch the default jump, but the explorer.exe cann't startup with the change... :confused:

Code: [Select]
00007ff6`01c96a7f 418887f9020000  mov     byte ptr [r15+2F9h],al >>>>>>>>>>>>>>>>> on retrouve bien l'adresse du ba
00007ff6`01c96a86 84c0            test    al,al
00007ff6`01c96a88 0f851f660700    jne     explorer!`TileBadgeProviderLogging::Instance'::`2'::`dynamic atexit destructor for 'wrapper''+0x1512d (00007ff6`01d0d0ad)
00007ff6`01c96a8e 4138bff8020000  cmp     byte ptr [r15+2F8h],dil
00007ff6`01c96a95 0f8512660700    jne     explorer!`TileBadgeProviderLogging::Instance'::`2'::`   >>>>>>>>> change jne to je

Hi, Clsven

So there must be another bug.
try the release one in.

with this mistake, I already test it in Windows10_InsiderPreview_Client_x64_en-us_15063.iso
I want to know what the max resolution in the list.(if it is 1366x768, so maybe the PE need video driver for bigger resolution.)

there maybe three reason, I think.

1). your screen is in ongitudinal direction.
2). your PE is not functional(I tried clean boot.wim and Win10PESE, both work fine.).
3). your video card is special, need video driver installed.

if reason is 1), try to swtich the width and height paramters for DISP command.
PECMD.exe DISP W768 H1024
if this will change your resolution.

Can you just startup with boot.wim, and SHIFT+F10 open a cmd.exe,
and try to run "pecmd.exe disp", tell us if it works.
if works the reason is 2), if not, the reason is 3).


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.

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.

Code: [Select]
Windows Registry Editor Version 5.00




@="hiderun.exe WinXNew.bat folder \"%V\""

"MUIVerb"="Text Document"

@="hiderun.exe WinXNew.bat .txt \"%V\""


@="hiderun.exe WinXNew.bat .bmp \"%V\""

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
set /a idx+=1
if not exist "%newfilename%" goto :CREATION
call :GETNEWNAME %idx%

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

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]
    "cascademenu": {

* (4.31 kB - downloaded 8 times.)

remove system "New" Sub Menu.

add "~reserved~" to
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
file explorer won't be freeze, but just has no sub menu.(won't load HKCR's ShellNew key)

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!

Code: [Select]

Code: [Select]
Windows Registry Editor Version 5.00


;need update ACL rights for offline importing.
;or you can add this on WinPE startup.

* (1.02 kB - downloaded 11 times.)

Is there a option for File Explorer?

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

Code: [Select]

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.

Code: [Select]

;some version of WIN10 need this file,
;some version will broke if have this file.

Code: [Select]
Windows Registry Editor Version 5.00

@="Explorer Navigation Bar"

@="Shell Name Space ListView"

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.
* (1.31 kB - downloaded 11 times.)

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.

can I use a 3rd-part StartMenu?
Yes,but I think only Classic Shell(<= 4.2.5) can be.


hide origin start icon with WinXShell.jcfg
Code: [Select]

and the origin sample startmenu item can be set with:

Code: [Select]

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.


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).

Hi, Clsven

4.) I added your WinXHell_x86 program to the ISO.  When I execute it after boot I get an application error (see attached snapshot 2)

So whats wrong?

I try this in an English Language OS, it crashed, that realized me the UI_Resolution\main.jcfg has some description in Chinese.
remove them with notepad.exe to be like below.then it will work in PE.

★the comma ends in "baricon":"settings.ico" also is Chinese char,replace it with an English comma too, or just copy this:

Code: [Select]
= #resolution_combo, ::GetResolutionList();
= #resolution_combo, ::GetCurrentResolution();
PUSH #resolution_combo;
CALL ::SetResolution();
  CALL ::Close();

also, you can run WinXShell.exe -ui UI_Shutdown\main.jcfg(this one is just simple English json code.) and click restart, it work fine.

Hi, Clsven
I was tested with the Win10PE SE from below(built with WINDOWS10.0.10240_x64.ISO with default settings.).

1.) I have NO context menu

Desktop/right click/Display and Control Panel/Display both works for me.   :confused:

will set the max resolution.

add this commandline in startup script will make the max resolution for you, which one should be.

4.) I added your WinXHell_x86 program to the ISO.  When I execute it after boot I get an application error (see attached snapshot 2)
try run this in cmd.exe with commandline I was written.

WinXShell.exe is a zero dependency shell program(Desktop,Taskbar,TrayArea,Simple StartMenu) for all windows version above XP,
but the Insider Preview Win10 15002~150042 build will crash if running the program directly.
It has a config for avoid this error.

but with -ui option, it won't create the shell, and shouldn't be error, so I didn't show the config for you.
the WinXShell's Resolution Settings will list the vaild Resolution and the max Resolution in the first.
It could auto set the max Resolution if modifing the main.jcfg with some *script* for it,
because the PECMD.exe can do the CUI things, the WinXShell.exe just foucus on a beautiful simple GUI interface.
I saw the application error message :(
the WinXShell is developed in Chinese/Japanese Language OS(tested on Chinese/Japanese/English Language OS),
maybe there something wrong with othe Language OS.

after all, tell us your PE's build version or upload on some server, that we can try to find why it doesn't work.


Win10 / Re: I can not see the mouse cursor before the shell
« on: March 11, 2017, 07:13:42 PM »
try Copy
Code: [Select]
[HKEY_CURRENT_USER\Control Panel\Cursors]
registy information To
Code: [Select]
[HKEY_USERS\.DEFAULT\Control Panel\Cursors]

Can I enable somehow display management for Win10PESE generation (so that adjusting resolution will be possible later during run)?

even though Desktop->contextmenu->Display works for me, here are some options.

Code: [Select]
PECMD.exe DISP W1024 H768


Code: [Select]
WinXShell.exe -ui -jcfg UI_Resolution\main.jcfg

you needn't copy file from install.wim, so the config.ini need be:
Code: [Select]
set PB_BASE_WIM=D:\WIN10PESE\Boot10.wim

to advance:

create a folder named "AddPortables" in "Projects", and create 1 text file in this.
Code: [Select]
set PB_BASE_WIM=D:\WIN10PESE\Boot10.wim

now create a new folder in "AddPortables" as a *PATCH*
Foobar and create the init.bat file.
Code: [Select]
xcopy D:\tools\foobar123\  "X:\Program File\"

if have other apps, can by the way add a *PATCH* folder.

what more?
even the program need registry modifications, just put  *.reg in the *PATCH* folder,
wimbuilder will auto import this for you.

if you aren't like write INIT.bat(or LAST.bat), you can also create folder name "X",
and put your file in the "X" folder like:
Code: [Select]
         +Program File\

the wimbuilder is fine for your NEED.

after follow the preparation, you need make your *PATCH* like:

create a folder named "AddFoobar" in "Projects", and create 2 text file in this.

Code: [Select]
set PB_BASE_WIM=D:\WIN10PESE\Boot10.wim

Code: [Select]
xcopy D:\tools\foobar123\  "X:\Program File\"

now, you can just run "D:\PB_Workspace\WIM_Builder\PE_Builder_STRAIGHT.bat" select "AddFoobar", and
this will make a ISO for you in D:\PB_Workspace\mnt\build\BOOTPE.iso (boot_build.wim)

if you be used to wimbuilder, that is more efficient than WinBuilder.
if you know batch script then more.

Win10PE SE HomePage / Re: Rotation Screen
« on: February 11, 2017, 06:02:41 PM »
Well it would be nicer if there is a nice taskbar utility like Irotate, let us know when you find a working one.

I had written a tiny commandline tools for this, better used if adding a simple GUI or binding with some hotkeys.

Code: [Select]
Rotate the screen counterclockwise without parameters
Rotate.exe C
Turn the screen clockwise

Rotate.exe 0
Normal screen
Rotate.exe 1
90 degree rotation screen
Rotate.exe 2
180 degree rotation screen
Rotate.exe 3
270 degree rotation screen

#I just found I cann't edit the post, so add a new reply for the fist Project.

* (0.41 kB - downloaded 28 times.)

1. unzip to Projects folder,
2. make sure the source boot.wim already put in D:\PB_Workspace\mnt\
3. check or change the PB_BASE_WIM file name(boot10x86.wim).

this project only has one file - config.ini.

this file override WIM_Builder\config.ini's option,
so what in this file:

Code: [Select]
set PB_BASE_WIM=%PB_MNT_DIR%\Boot10x86.wim

rem skip update files' rights operation
rem skip update registry's rights operation

so after this project, you will build a boot.wim with remove files/registry system rights,
so you can easy to add/delete them.

this is the first base wim, the other project should use this as base wim file. PB_BASE_WIM
(get TrustedInstaller Right will take 2 minutes, so will this base wim, other project can be SKIP the process.)

Pages: [1] 2
Powered by EzPortal