Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 


Joveler

PEBakery

Recommended Posts

Just made new MistyPE_10x64 build using same source, but this time disabled 32 bits support, build was sucessful now.

But after booting from it, I found it is useless to me as I use PStart (32 bits, not 64 bits available) to launch from all my WinPE's a collection of portable programs located on root of USB or HD.

alacran

Edited by alacran
Link added

Share this post


Link to post
Share on other sites

ExistRegMulti is also not supported:

If,ExistRegMulti,<HKEY>,<Section>,<Key>,<SubString>,<Command>

The command checks for the existence of a substring in a multiple string REG_MULTI_SZ registry value. Such a registry value contains a sequence of null-terminated strings, terminated by an empty string (\0).

Usage:

If,EXISTREGMULTI,HKLM,SYSTEM\ControlSet001\Control\ServiceGroupOrder,List,"FSFilter Infrastructure",Echo,YES

Or how I use it:

If,EXISTREGMULTI,HKLM,Tmp_System\ControlSet001\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F},UpperFilters,RegMulti,HKLM,Tmp_System\ControlSet001\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F},UpperFilters,APPEND,hotcore3
Else,RegWrite,HKLM,0x7,Tmp_System\ControlSet001\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F},UpperFilters,hotcore3

 

Edited by Paraglider

Share this post


Link to post
Share on other sites

This line also passes the syntax check but fails at build time:

RegWrite,HKLM,0x3,Tmp_Software\Classes\CLSID\{LNINEVST-4YBM-7IPO-BXF1-KZLBS2X3NP70},0,\
44,44,28,F6,EF,7C,37,94,04,B5,BF,68,D8,94,BA,93,1C,55,26,62,4C,BC,70,\
FA,20,6A,86,68,6B,6D,05,57,1A,D3,3F,59,8E,8C,60,92,52,E1,28,62,3F,6C,18,71

 

Share this post


Link to post
Share on other sites

Of course, it was never Joveler's intention to support *all* the (weird?) WB commands, first task was to make it compatible with Win10PESE, after that he wants to focus more on "new" stuff.

But I'm sure he is willing to look at some of these issues, like the line continuation (which was also the problem in Para's second example, I guess).

Where did you take these code samples from, Paraglider?

Share this post


Link to post
Share on other sites

Some of my own personal scripts for commercial products.

 

First one was for Paragon HDM15 Pro. Second for Passmark Performance Test 9.

Share this post


Link to post
Share on other sites

Alacran,

I tried MistyPE with a modified Core\syswow64.script file, all the lines now have the "01" at the end of the line, instead of "\" on the end, and the "01" at the beginning of the following line. I don't really understand why these lines were concatenated in the first place, those two extra character could easily fit on the same line. But that's not the point, breaking up lines like this is used in other scripts, like 7pese wallpaper, and the script mentioned by Paraglider. We'll have to wait what Joveler thinks...

With the breaks removed, the WOW64 script now works! (Not on 16299 though, we need Dave's input for that). Try an older x64 w10 release for now...

You also mentioned you wanted to remove the UAC warning. This can be set in the main options, tab3 ("Options 3"), item 1 ("UAC check").

 

Edited by Atari800XL

Share this post


Link to post
Share on other sites
56 minutes ago, Atari800XL said:

 I don't really understand why these lines were concatenated in the first place, those two extra character could easily fit on the same line.

As a side note and JFYI, an (educated? :dubbio:) guess is that they were copy pasted from a .reg file (removing spaces), the \ <newline> is a common way in .reg (and in .vbs, besides several flavours of C and Linux shells) to make the "code" fit in a given screen/character number width, not something "peculiar" to Winbuilder.

jaclaz

 

Share this post


Link to post
Share on other sites

I hope all of you are filing bug reports on github for him.  While he might not have too much time, others can fork and then make pull requests to fix some of these.  For one, the continuation of a line and concatenating them together before passing it down to the parser SHOULD be relatively straight forward.  For someone like me (although pretty busy right now), who love finding and fixing bugs more than we like writing new code, this could be a fun exercise.

Share this post


Link to post
Share on other sites

Probably could debug it myself. Already temporarily fixed a bug to remove dependence on Main containing a description line which I reported to the author.

Share this post


Link to post
Share on other sites

Did not fix this one though which I fixed by changing the win10pese script:

Search plugin fails inside the macro library called by this script line:

Call,FileCopy,%Source_sys%\prm*.dll,%Target_Sys%

Although there seems no need to use Call. I changed to:

FileCopy,%Source_sys%\prm*.dll,%Target_Sys%

Edited by Paraglider

Share this post


Link to post
Share on other sites

Thanks for intensive testing!

 

On 2017. 12. 4. at 1:21 PM, Paraglider said:

ExistRegMulti is also not supported:

If,ExistRegMulti,<HKEY>,<Section>,<Key>,<SubString>,<Command>

The command checks for the existence of a substring in a multiple string REG_MULTI_SZ registry value. Such a registry value contains a sequence of null-terminated strings, terminated by an empty string (\0).

Usage:

If,EXISTREGMULTI,HKLM,SYSTEM\ControlSet001\Control\ServiceGroupOrder,List,"FSFilter Infrastructure",Echo,YES

Or how I use it:

If,EXISTREGMULTI,HKLM,Tmp_System\ControlSet001\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F},UpperFilters,RegMulti,HKLM,Tmp_System\ControlSet001\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F},UpperFilters,APPEND,hotcore3
Else,RegWrite,HKLM,0x7,Tmp_System\ControlSet001\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F},UpperFilters,hotcore3

 

I implemented "If,ExistRegMulti", so it will be supported in next release.

Make sure to test PEBakery's behavior is correct (I was not able to reproduce use case in WB082, maybe problem with WOW64 reg redirecting?).

 

On 2017. 12. 4. at 1:48 PM, Paraglider said:

This line also passes the syntax check but fails at build time:

RegWrite,HKLM,0x3,Tmp_Software\Classes\CLSID\{LNINEVST-4YBM-7IPO-BXF1-KZLBS2X3NP70},0,\
44,44,28,F6,EF,7C,37,94,04,B5,BF,68,D8,94,BA,93,1C,55,26,62,4C,BC,70,\
FA,20,6A,86,68,6B,6D,05,57,1A,D3,3F,59,8E,8C,60,92,52,E1,28,62,3F,6C,18,71

 

I didn't know WinBuilder also have '\' next line token.

It seems to me that WB support this only in RegWrite (or at least related to registry), am I right?

Share this post


Link to post
Share on other sites
On 2017. 12. 4. at 4:52 AM, alacran said:

Reporting my tests:

Source: Win10_1709_Spanish(Mexico)_x64.iso (Fall Creator Update).        Antivirus and UAC disabled.    .NET Framework 4.7.1 (v4.7.0 blocks AutoCAD).

Win10x64PESE Builded fine no problems.

MistyPE_10x64 did not finish the build, aborted, attached you can find a 7zip with changes made to scripts, log and picture, also a picture of an annoying messaje about UAC (UAC is permanently disabled on my PC).

Tested using PEBakery_20171202 and also PEBakery_20171123 (same result for both versions).

MistyPE_10x64 through MistyPE project (WB 0.82) was sucessful (with and without changes to scripts). This was done just to verify if source was the trouble maker.

 

Best Regards

alacran

Failure.7z

PEBakery is hard-corded to report always [True] to [System,HasUAC] command.

I did this because:

  1. Starting from Windows 8, Windows does not allow turning off UAC in normal method.
    (Disabling UAC forcefully will also disable Metro)
  2. Support of Windows 7 will end near to 2019 by Micosoft.
  3. Turning off UAC is very dangerous.

However, if project developers want this command to be correct, I will implement it. How do you think?

Share this post


Link to post
Share on other sites
On 2017. 12. 4. at 12:50 AM, jaclaz said:

The (old, unsupported and now also deprecated) Winbuilder 082 had IMHO some serious issues with an overcomplex, often futile, primitive and often not human-writable (let alone human-readable) syntax.

If this project (in a future, when the developer will have time, etc.) will lead to a new (clear, simple, human-writable and human-readable) syntax while being compatible with existing .sctipts or projects it represents a much needed innovation.

If this project is only meant as having a faster interpreter for the same botched syntax I cannot see much of its usefulness.

The scripting language is either (or will be) 100% compatible or it is not.

If it is not (and adds much needed better syntax and new functions) soon .scripts/projects will be written/modified for this new builder (and will thus lose compatibility with the old one).

If you prefer, in my perverted mind, I would have liked a new (good, fast, and what not) interpreter with its own (better) scripting language AND with the possibility to interpret/convert (to the new syntax) the old, largely botched syntax of Winbuilder.

I plan to introduce new language can write a converter in a long term, but I cannot expect exact date, there are too many things to consider. (Like deciding between using existing language runtime or make a new grammar)

So my short term plan is to make PEBakery compatible with existing PE projects, and then introduce new runtime in long term, provide interoperability just like WebAssembly-Javascript model.

Edited by Joveler

Share this post


Link to post
Share on other sites
4 hours ago, Joveler said:

I plan to introduce new language can write a converter in a long term, but I cannot expect exact date, there are too many things to consider. (Like deciding between using existing language runtime or make a new grammar)

So my short term plan is to make PEBakery compatible with existing PE projects, and then introduce new runtime in long term, provide interoperability just like WebAssembly-Javascript model.

Sounds reasonable. I definetely agree with jaclaz that the old syntax is a weird mess resembling something you might get if Batch/cmd copulated with vb on top of an .ini file. its very inconsistent and hard to read and extend "functions/commands"

In the messy cases I would rather see time spent on creating viable replacements to take over where ugly hacks (ie MacroLibray/cmd/etc) has been shimmed in to work around bugs than creating compatibility with such monstrosities. We are talking more project script level here though as opposed to app scripts which generally use simple/basic commands that should be mostly drop in comparable in order to speed adaption.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×