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. 


  • Content count

  • Donations

  • Joined

  • Last visited

Community Reputation

13 Good

About Joveler

Profile Information

  • OS
    Windows 10 x64
  • Country
  1. PEBakery

    Beta 2 is released! PEBakery binary and source is available at github. Changelog - [Fixed] WebLabel was not correctly parsed - [Fixed] Resolved potential license issue
  2. PEBakery

    Deleted, my browser send a post request twice.
  3. PEBakery

    I had to use wimgapi because wimlib does not support mount / unmount of wim in Windows, sorry for that. In my test, unmounting wim is disrupted by even a file explorer window viewing wim-mounted directory. Beta 1 only supports mount of wim in readonly mode, readwrite support will be added in beta 2. I will investigate this issue, thanks for reporting.
  4. PEBakery

    Build 20180103 (Beta 1) Download : Link Changelog - [Added] ReadInterface, WriteInterface - [Added] WimMount, WimUnmount - [Added] ProgressBar for WebGet/WimMount/WimUnmount - [Added] Flag GLOBAL introduced to SetMacro - [Added] FileCopy/RegWrite produce LogState.Overwrite instead of LogState.Warning - [Added] Print summary of warning as well as error in exported log. - [Changed] Improved Console Output in ShellExecute,Hide. - [Fixed] Handle negative number properly in Command 'If'. - [Fixed] Fix hang in System,Cursor. - [Fixed] Fix hang in UserInput,Dir. - [Fixed] Fix crash in SettingWindow. - [Fixed] OnPluginExit/OnBuildExit produces proper #1 argument. - [Fixed] ShellExecute,Hide,XCOPY.exe,... now work properly on Windows 7 1. Improved Console Output in ShellExecute,Hide PEBakery will display and log stdout and stderr as unified one output, to simulate real console print. 2. ReadInterface, WriteInterface This command is a native version of Macro Library's ChangeInterface. See manual for usage. 3. WimMount, WimUnmount Native commands for handling wim files are being added. WimMount and WimUnmount depends on wimgapi, and the other commands are planed to use wimlib. See manual for usage. 4. ProgressBar for Current Command PEBakery will display current progress in some commands. Currently WebGet, WimMount, WimUnmount is supported. 5. FileCopy/RegWrite produce [Overwrite] log instead of [Warning] log PEBakery was producing too much overwrite warning, making hard to find more important warnings. So FileCopy and RegWrite will generate [Overwrite] log instead of [Warning].
  5. PEBakery

    Developers can make use of newly added %PEBakery% fixed variable. If,ExistVar,%PEBakery%,Begin If,%PEBakery%,Equal,True,Begin Use these directive to detect PEBakery's presence, it would be way more better and readable than %EngineVersion%. I partially agree using this kind of branch in projects is a bit dirty, but currently there are no other way to make use of PEBakery's advaned feature before designing new language. Even after new language is released, rewriting all .script file is too tedious, and currently I do not expect writing one-to-one converter can be done in short term (WB syntax is... a quite ambigious, making conversion too hard). So it is natural to think many people will continue to use WB syntax for a seeable future, then why not give developers a way to use advanced features. For example, many people are using python 2 right now even python 3 was released about 10 years ago, and at a result python 2 provides part of python 3's features via __future__ module and still being maintained. Being able to manipulate wim files is a very necessary feature indeed. wimgapi and wimlib have thier own advantages, so let's discuss about how to design new commands for wim files. Regarding external programs, I think the main problem is WinBuilder projects have to depend on external program to workaround WinBuilder bugs (Ex. Macro Library). Making PEBakery to do jobs what was supposed be done with WinBuilder will benefit projects. These are my plan for a near future: 1) Release of PEBakery 1.0 stable 2) Official Documentation PEBakery is compatible with a subset of WinBuilder commands, because omitted commands are nearly extinct in projects. I do not plan to research more, with the exception of unsupported commands are being used in production. I prefer github issue traker to discuss about bug report and feature request (Ex. FileCopy is buggy), and forums for general topics (Ex. What feature to add, which article documentation should include). Being in multiple site let me to hear many opinions in different envrionment, so you can use the forum wherever you prefer.
  6. PEBakery

    Great articles, Misty! Regarding instructions, how about adding "How to export logs"? Logs are fundamental for troubleshooting, both for MistyPE and PEBakery. It would be a honor to me PEBakery to be distributed with MistyPE. I introduced many fix in christmas release, for example showing line number in error log, fixing System,RefreshInterface to work properly in script.project, etc. If you find an error or new ideas, please let me know. EDIT How do you think about Launcher.exe's target framework? Launcher now detects installed .Net Framework's version and warn user to install lastest framework, but launcher itself requires .Net Framework. I lowered the target to 4.6.2 temporary (since Launcher.exe used that version before), but I am willing to lower more if it is necessary. You can refer to this article to determine adequate version.
  7. PEBakery

    Build 20171225 Download : Link Changelog Fixed: - Fix FileBox to handle root directory path correctly. - Encode command no longer duplicate entry under [EncodedFolders] - Launcher.exe will alert user to update .Net Framework if 4.7.1 is not installed. - Prevent crash in PluginEditButton. Added - ShellExecuteSlow, a variant of ShellExecute to run process in BelowNormal Priority. - ShellExecute's Standard Output Redirect TextBox will be autoscrolled. - ShellExecute's Standard Output Redirect can be hidden in Setting. - Implemented EchoFile command. - .db files are moved info database directory. - Implemented System,SetLocal|EndLocal, and #r. - Implemented System,Load. - System,LoadAll as a new alias of System,RescanScripts. - New setting to let user choose custom code editor. - Display line number in error or warning log. - Implemented INIReadSection. 1. Alert user to install .Net Framework 4.7.1 Launcher.exe now depends on .Net Framework 4.6.2, and alert user to install .Net Framework 4.7.1 if not installed. 4.6.2 was chosen because it is the minimal version supports HiDPI natively. - Speculations Launcher.exe's target framework can be lowered more, minimum 4.0 (Windows 8 has this by default). .Net Framework 4.0 is not installed in Windows 7 by default, but it cannot be trageted. It is because starting from Windows 8, Microsoft ommited .Net Framework 3.5 in default install. 2. Display Line Number in Error Logs PEBakery will display line number along with code in error logs. It will help troubleshooting bugs in .script files. 3. [New] System,SetLocal|EndLocal, #r System,SetLocal and System,EndLocal is introduced from cmd syntax. System,SetLocal call isolates modification to local variable, and System,EndLocal reverts local variables to the state before call of System,SetLocal. Its logic is similar with how Windows isolate envrionment variable in batch file. New token #r is introduced to be used as return value. #r is not affected by SetLocal and EndLocal, and designed to be used in macro/section call. Its value cannot be guaranteed to survive another macro/section call, so copy value into local variable to preserve. (Think how EAX hold return value in x86 assembly language). [Process] Set,%B%,F Run,%ScriptFile%,A Echo,B = %B% Echo,C = %C% Echo,R = #r [A] System,SETLOCAL Set,%B%,T Set,%C%,T Set,#r,T System,ENDLOCAL Result: B = F C = %C% R = T 4. [New] System,Load In WinBuilder, one have to call System,RescanScripts to refresh project tree. To support refresh of subset of .script files, new syntax introduced. System,Load,<FilePath>,[NOREC] In FilePath, wildcard can be used. Unless NOREC flag is used, PEBakery will search for file recursively. System,RescanScripts now have an alias LoadAll, to match terminoloy with System,Load. System,LoadAll
  8. PEBakery

    Misty, I investigated the issue and there was a bug in System,RefreshInterface when used in main plugin (script.project). I fixed this issue, so in next build it will work properly.
  9. PEBakery

    Thanks for your feedback Misty! I read your post in reboot, I had not noticed PEBakery crashes if .Net Framework 4.7.1 is not installed. Due to .Net Standard 2.0 reference issue (which is still not fixed by Microsoft!), there is a complexity concerning the version, I will fix PEBakery to inform about .Net Framework version to user if its version is lesser than 4.7.1. Yes, I am working on adding line number when reporting syntax error. alacran, please note that current PEBakery's System,ErrorOff implementation is buggy. It does not works if you use macro (known as API in WB082). I hope to fix this problem can be fixed in next release. Great, I will test new release with PEBakery.
  10. PEBakery

    Build 20171216 Changelog - Fix TXTDelLineOp optimization bug - Fix NullReferenceException in System,RefreshInterface - Disable System,SaveLog when logger is turned off - Recognize "PathSetting=False" in "script.project - [Main]" and disable path setting. - Prevent possible UI exceptions. - "[Main] - Description=" line is no longer mandatory in plugin. - CodeParser.GetNextArgument will not slice argument with "". - Support legacy branch condition when compatibility option is set. - Support 4-argument 0x7 RegWrite. - Do not touch escape characters when setting variables. - Ignore the plugin itself in "[Main] - Disable" directive. It fixes a bug VMWare.script is uncheckable. - TXTReplace will be optimized to TXTReplaceOp if condition is met. - IniReadOp will set varible to empty string when key is not found. - Do not escape variables imported from interface. - Pressing Update button of LogWindow while building no longer crashes program. - Log stdout and stderr in ShellExecute,Hide. - Implement ShellExecute,Min. - Implement GetParam, PackParam. - Implement "#a" to track section parameter count. - Allow "-" in variable name, for compatibility with Gena_Meal. - Fix IOException in CopyOrExpand. - Fix UIParser to recognize tooltip in TextFile 1. Update to .Net Framework 4.7.1 PEBakery uses several libraries. Update of some library caused PEBakery to malfunction (problem with .Net Standard 2.0), so I had to update .Net Framework to 4.7.1. 2. [New] ShellExecute ShellExecute,Min added to execute programs minimized. ShellExecute,Hide will show and log stdout and stderr. 3. [New] parameter count token #a To deprecate PackParam, #a token is added. When used in command, #a denotes section parameter's number.
  11. PEBakery

    Thanks to you, I found a bug in CodeParser disabling legacy branch conditions. Will be fixed in next release. Fixed PEBakery to create empty REG_MULTI_SZ key to regsitry with 4-argument 0x7 RegWrite. I will do it when time permits.
  12. PEBakery

    Hello paraglider, thanks for reporting. I looked through your reports. I cannot reproduce it, can you provide the sample? Fixed, they will work in next release. PEBakery supports to use branch condtion NotExist* when Allow Deprecated Legacy Branch Condition compatibility option is on. (It is turned on by default.) PEBakery limits the use of Not in legacy branch condtions, however. (No If,Not,NotExistDir,... form) // Part of PEBakery's CodeParser code if (AllowLegacyBranchCondition) { // Deprecated BranchConditions if (condStr.Equals("NotExistFile", StringComparison.OrdinalIgnoreCase)) { if (notFlag) throw new InvalidCommandException("Branch condition [Not] cannot be duplicated", rawCode); cond = new BranchCondition(BranchConditionType.ExistFile, true, args[cIdx + 1]); embIdx = cIdx + 2; } else if (condStr.Equals("NotExistDir", StringComparison.OrdinalIgnoreCase)) { if (notFlag) throw new InvalidCommandException("Branch condition [Not] cannot be duplicated", rawCode); cond = new BranchCondition(BranchConditionType.ExistDir, true, args[cIdx + 1]); embIdx = cIdx + 2; } ... Did this behavior not work properly?
  13. PEBakery

    TestBuild 20171213 released. Download Changelog - Halt command kills subprocess immediately. - If WorkDir is specified in ShellExecute, WorkDir is added to PATH temporary. - Set command supports add/remove of macro command. - AddVariables adds local macro. - Added SetMacro command to manage macro only. - In HTML log export, write [ and ] near LogState. - System,RefreshInterface will block until refresh is done. - Change of interface section will be updated by System,RefreshInterface. - Added compatibility option for FileRename/DirMove to move file and directory. - Added PathMove, a command works like FileRename + DirMove. - Variable and Macro's Name is restricted to regex "[a-zA-Z0-9_\(\)\.]+". - Fix TXTReplace to treat case insensitive string.
  14. PEBakery

    Does If,ExistVar command have only one argument? Please change "If,Not,ExistVar" to "If,Not,ExistRegKey" and see if syntax error still occurs.
  15. PEBakery

    Using github issue tracker keeps me organized about bugs. So if you figured out the cause or details of bug, please create a ticket in issue tracker. (You will be able to see even which source had caused the bugs!)