Scripting evolved..

As time passes the new way of writing scripts also moves forward. So far most dificult goals have already been reached and we're mostly missing to start porting the same functions to other projects like VistaPE.

So far things are looking bright and these functions are getting a good state of functionality along with simplicity - so necessary to make things easier to understand and share.

Pedrole15 has also joined this development and managed to improve some of the presented functions either making them work much faster or adding some new nifty features.

Was also added a new option inside unpack - it can now directly call an executable that is attached inside the script.

<strong>How is this useful?</strong>

Imagine that you want to add all files inside single self extracting 7zip file - this way you can use 7z compression at it's best.

After running this exe file, it will be deleted from the folder to where it was first extracted.

As you can see this function was added having in mind this particular sort of use.

It was also added since there is an important feature lacking on WinBuilder ever since the beginning - the support of multiple subfolders inside attached files, meaning that you can only add folders on the root of the script itself. The initial goal for having attached files only planned very simple files mainly used to keep small tools that would complement a script.

With time we've began using these scripts to hold bigger files and now it's evolving to a point where we can use these app scripts to literally install a program on any given target regardless of the used project as long as some common rules are followed <em>(mostly of them defined inside api.script)</em>

This means of course that the complexity of programs to be supported also tends to increase as things move on - but luckily that both Peter and MedEvil have come to the rescue and began doing a really important research that will hopefully bring the final touch to our goals and result in a truly efficient method to quickly add programs to any target windows.

:)

-- Nuno Brito

Redirecting the registry changes to a target windows?

MedEvil <a href="http://www.boot-land.net/forums/index.php?showtopic=2705">posted a question</a> if there was an alternative to make applications that depend on registered DLL's and OCX files work without having to be registered with RegSVR32.

This might seem a question of little interest - but I think that this is a fulcral point where we can finally start having a good way to directly intercept the way how the registration is done and be able to redirect to a target windows hive.

Why does this matters?

Because most times we'd just declare these OCX files to become registered when the boot disk started up and now we will probably be able to inject all needed changes to automatically register files inside these external hives giving a lot more control on how things can be done (remarkable!)

Also found some records of this matter being discussed on 911cd.net by paraglider and troglodyte as early as 2004 which later produced a new tool to allow adaware be run from PE environment and clean target hives on disk - only now I've fully understood how important this tool really is.

The secret behind this story lies behind a registry function which allows to redirect all write operations being done under a specific registry location (more details inside the discussion post) but the bottom line is that we can indeed record and even redirect all the writing to a target hive or even export the results to use as script commands if required and this way having a simple yet flexible combination of instant portable apps.

However, I wonder if this is the secret method also used by thininstall to make their portable office 2003 application.. Not planning to run office 2003, but how far can this method be extended? It would be good to have these portable apps running or being installed and uninstalled without leaving any visible traces on the registry and system folders.

A really interesting discussion - teached me a lot of registry handling - would this be solution to avoid newer UAC restrictions under Vista that limit WinBuilder (and all other apps that load external hives into the local registry) to run as administrator with UAC disabled?

Maybe it's worth checking it out too..  :)

-- Nuno Brito

“universal” scripts?

Last night I've finished some of harsher code sections from the new functions that come included inside api.script which are meant to replace the current scripting found inside nativeEx compatible projects.

This means that using these functions we are creating scripts that can be also applied on other projects like VistaPE and vice-versa for example.

While adding this "portability" we also make them easier to write. Just define three variables (exe file, shortcut title and folder name) and we'll be able to call these functions without needing to specify location for registry hives, to care where the program files folder is placed or even if there exists a system32 folder to where system files can be copied.

Last night the code that implemented file associations was also concluded sucessfully. In overall it's quite complete and will allow all sort of operations making this association task quite easy. Here are the possible usage that one can give to this newer command:

<em>[variables]
%ProgramTitle%=Start my program
%ProgramEXE%=myProgram.exe
%ProgramFolder%=MyProgramFolder</em>

<em>[process]</em>

<em>associate_file,html
associate_file,html,open,c:\test.exe
associate_file,html,open,c:\test.exe,/run=%2
associate_file,html,edit
associate_file,html,icon,c:\test.exe
associate_file,html,icon,%systemroot%\System32\Shell32.dll,-153</em>
These are all the possible uses - in most cases the only needed command is the first one and nothing more.

The first command will associate <em>myProgram.exe</em> with .html files

<em>associate_file,html,open,c:\test.exe</em> Will associate c:\test.exe to open up .html files

<em>associate_file,html,edit </em>Adds the option to edit a file using myProgram.exe whenever you use right click from explorer on html files.

<em>associate_file,html,icon,c:\test.exe </em>will modify the display icon of the .html filetype (by default the icon of myProgram.exe is used) - this helps to define another file to use as icon (this command won't associate any action, just modify the default icon)

<em>associate_file,html,icon,%systemroot%\System32\Shell32.dll,-153</em> - Almost the same as above but let's you also add a parameter whenever you need to use a file that includes several icons packed inside like shell32.dll for example.

Other functions are also equally usefull and should be published soon enough..

-- Nuno Brito

Wicked OS’s..

Windrv has placed a <a href="http://www.boot-land.net/forums/index.php?showtopic=2690">request</a> proposing to drop Windows PE environments and adopt installed windows to solve all the limitations imposed to our work under PE.

The idea itself is really tempting mostly because it's probably much harder to make PE boot disks the way how they are available at this moment than creating a XP install anywhere needed. As Oleg_II mentioned, the only obstacle at this precise moment would be the registry hive creation - but looking with attention to Peter's work - this has already been solved some months ago with the introduction of <a href="http://www.boot-land.net/forums/nativeEx-and-LiveXP-f52.html">nativeEx</a>.

So far the future for a project of this sort looks very bright - meaning that we can likely create a full XP running under 50Mb (as it was already demonstrated possible some time ago with the <a href="http://www.microwinx.com/">microwinx</a> project) - we already have the gathered know-how from PE environments so this would become a most welcome improvement.

It makes life much simpler since we'd be able to install complex programs with ease and also make by default our installed windows run completely portable and capable of working from ISO/USB and regular HDD drives under much slimmer sizes with an excellent overall speed optimization.

Previous attempts depended on nlite and a lot of experience and manual steps to get this sort of results - however, why do we need them if we already know how to add back each of the most important windows components?

Also means more freedom to install Windows from whatever source location needed - no more time wasted with text mode setup or the need to make a copy of any Windows Install files to temporary folder locations - with some luck this would almost surely mean a perfectly working windows install under 10 minutes.

It's not just a portable full featured windows project (compared to PE boot disks) - it would also mean complete freedom from any windows setup limitations and a way to modify and obviously improve things as needed - huge step in the evolution of the way how these OS's work by default.

Would be great if we could all gather our heads to bring this project to reality.

It will be a truly happy day whenever I see it working for the first time, the possibilities are simply too amazing to describe.. :)

-- Nuno Brito

Post your YouTube clips!

As we all know - an image is worth more than 1000 words - but how many images take to explain a video clip?

With free services like YouTube - everyone can quickly create new clips and post them here in the forums so that everyone else can get a better idea of why things are going wrong - or better yet - show others how things can get done.

Well.. As example of usage imagine when any friend of yours at work asks for help to install something on the computer - would you write him 3 or 4 pages or would you prefer to show him yourself how to do it?

Obviously not necessay for each case - but imagine the possibilities of actually showing how simple some things can be and even repeat following your clip example.

A quick tutorial was written <a href="http://www.boot-land.net/forums/index.php?showtopic=2688">here</a> and will show the basic steps to create your very own clips. My own experience on this video arena is also very little but if we have the conditions both from the youtube hosting and here in the forums - then why not using them?

I've been having quite some fun playing around with CamStudio - an open source application that does it's work as expected without any fuzz. Uploading the clips takes a bit longer since my own web connection is very sluggish but it is definitively a much better way to share information and saves a lot of time too.

Some clips were already uploaded and are available across a few tutorials and the download page of WinBuilder. One other advantage is that we can use tags to group related winbuilder clips. This way makes it much easier to browse on clips made by others since they are all displayed after running clip - a very positive source of information indeed.

Please do post these clips more often - especially when trying to debug/solve some strange behavior - nothing better than one of these videos to help everyone else understand what you mean or need to see fixed - thanks! :)

-- Nuno Brito

ViStumbler

This is a newer program that is similar in concept to the very well known NetStumbler - the author himself was kind enought to present his tool on the VistaPE forum, so I also took some time to view and test it. Surprisingly enough that it worked quite well and the source code is also available on autoIt so that people willing to make aditional changes can apply them right away.

Looking better on the author's site also found a couple of interesting apps that will sure keep an eye for future use. He seems a very talented person, maybe we can also make some requests in the future to make our builds more interesting.

You can visit the author site <a href="http://www.techidiots.net/">here</a>

And read the presentation topic of Vistumbler <a href="http://www.boot-land.net/forums/NetStumbler-for-VistaPE-t2641.html">here</a>

-- Nuno Brito

Unattended XP Installs

A new project has been published that will allow you to <a href="http://www.boot-land.net/forums/index.php?showtopic=2673">customize a Windows XP Install CD</a>.

This comes in a time when most machines already come with SATA disks where it is needed to slipstream the missing SATA drivers onto these install disks. For this task, there's already NLite and DriverPacks amongst many other applications, but since we're using winbuilder - why not making these things automated too?

This project starts by creating a liveXP project in unattended mode and will place it on the target directory. Then it will copy all files from the XP install CD onto another folder on the same target directory - it would be much quickier to just modify the source as nlite does - but at least this way we don't need to copy and copy again by ourselves to make further testings.

It's not specifically fixed to work just with LiveXP (50~100Mb) - you can also use nativeEx for example to get a slimmer build (31~50Mb), of course that the included project comes as default and has some changes to make it work along with this project without needing to apply any changes.

On LiveXP you find MMC, XPSetupLauncher and a very complete set of tools like spybot S&amp;D - this makes the install CD also revert back as a rescue platform (something in which we surely have much more experience ourselves..;) )

After this copy part is completed, comes the unattended mode - a script adds the details you specify for License Key, username, workgroup, etc - this avoids that we have to enter the same license key over and over again as well.

DriverPacks is next in line: by default only mass storage, LAN and WLAN driverpacks are selected - since they are not found for the first time when the project is running - it will download them from the web (there is a progress indicator to show how things advance), after this completes - all selected driverpacks are automatically slipstreamed to the XP install Folder inside the target directory. This is usually a quick process - but some packs like graphics and sound are very big sized and take a good while to finish.

An ISO is created with mkisofs and to test the results comes QEMU - which should also be automatically launched to view how things look like when booting on a real machine. Too bad I had no real hardware where I could effectively test things..

When adding full driverpacks - I've also noticed that the size of the ISO quickly raised to above 1Gb, so using a DVD is mostly recommended - there's also a USB boot disc included to help creating a bootable pendisk with all these files.

Last but not least - imgburn is launched to help burning the image onto a DVD - I gave preference to imgburn which is bit bigger than previously used image burners mostly because in real testings the other burners would most time fail to effectively create a bootable CD/DVD - this comes because of the poor support to overcome non-ideal situations and the lack of a good cache. ImgBurn is sized in 1Mb and works like a charm.. :)

All these steps are done when running the project from top to bottom - you can also run each script individually and apply your custom modified changes.

To test - just run the create ISO script again and then run qemu to see how it looks under the emulator.

This is a lenghty process taking around 15 minutes on my dual core 1,6Ghz laptop machine with 1Gb RAM - but if you consider the amount of steps automated it sures feel good to just press the play button and let it roll with our changes and definitions..

Using wb means that more tools and feature can quickly be added, I've been trying to catch up on this area reading as much as possible from good resources like msfn, driverpacks.net and neowin forums - so all suggestions and help on this matter are most surely welcome.

Let's now see if this project is considered worthy of future developments.. :)

-- Nuno Brito

Finding dependencies..

It's been a fun few days tracking down the needed dependencies to make some of my favourite programs work under PE environments - hadn't been doing it probably since 2005 back when I finished up my set of bartPE plugins and moved on to slimmer builds. But after this time it was really good to look back and learn the basic steps to make some program work as expected.

Along the way I've also created a small <a href="http://www.boot-land.net/forums/Creating-an-application-script-t2665.html">tutorial with video clips</a> so that others can also understand how this can be done.

You also find inside this guide a very handy tool that can display which dll's from system32 are not present on your PE build when you run a program from your own computer - it was a very good tool to save some time manually comparing each dll to see if it was there or not.

Of course that dependency walker, filemon, regmon and regshot are also very good help to you retrace the program steps.

Guess this has all been discussed and improved for almost 4 years ago - but I thought it would be nice to remind people of what can be done. If anyone has any requests for programs - do post them in the forums, it's always good to add more tools..

:)

-- Nuno Brito

In the mood for detective work?

Some unfinished scripts were posted <a href="http://www.boot-land.net/forums/Help-debugging-scripts-t2647.html">here</a> and were meant to add some extra tools inside XP based projects, unfortunately they seem a bit more dificult to get working off the box inside PE environments..

If anyone has some time to spare and do some detective work to figure out the reasons why they don't like to run from a boot disks - you're already invited to get your hands on it and start debugging..

Thanks!!

-- Nuno Brito

Customizing WinBuilder

Ever wanted to customize wb your own way?

Now it's quite possible - some developers requested custom wb binaries for releasing with specific projects and recently some changes were made so that everyone can customize the default logo and title or replace the standard ones with anything else that crosses their mind.

You can add a customized image on the main window, you can change the title of your app and you can also avoid the help pages and jump right away to the download window which can also be using your own custom download servers.

No more excuses for confusions when having to download something - include the binary along with winbuilder.ini and people can use customized definitions right away.

Details can be found on the respective discussion topic <a href="http://www.boot-land.net/forums/WinBuilder-072-t2611.html">here</a>.

Hope this also brings some fresh alternatives and fun to start tweaking wb to best suit your taste - let's start to see some how people use this feature and I hope everyone can have fun!! :)

-- Nuno Brito

Cool Projects!

MedEvil has questioned if anyone had any good ideas to apply as wb projects - this sounds like a very good start point to get some fresh ideas mentioned and proposed, so everyone is invited to drop by and speak your mind.

All topics are valid, either customizations, special builds, whatever - let your voice be heard and we'll discuss it..

You can visit this discussion topic <a href="http://www.boot-land.net/forums/Cool-Projects-t2624.html">here</a>

-- Nuno Brito

New slogan for winbuilder

There's a new voting to choose the next slogan for winbuilder, everyone is invited to visit the poll and place your votes - you can select not just a single one - but rather choose the ones you like best.

The overall idea is to select a new phrase that can better describe our feeling our community and perspective of the world.

Don't forget to place your votings <a href="http://www.boot-land.net/forums/index.php?showtopic=2608">here</a>.

:)

-- Nuno Brito

New scripts uploaded..

I've spent some time creating a few scripts to add some applications which I hope to help other members. There were still some other programs that were left out - mostly because I didn't managed to solve all needed dependencies inside the LiveXP project. Guess it's time to go back to detective times and try to figure out which files are needed to make things work as expected.

In the meanwhile, please do write your requests in the forums and I will try to make them possible if you like (or teach anyone else interested in learning how to do them).

-- Nuno Brito

WinBuilder 072

wb 072 has been uploaded and made available for everyone. It had been quite a while since a stable release, and this new binary has surely bring a lot of new features and bugfixes comparing the the previous edition. Still - a lot of work is still left to get done and prepared for the next months. Even thought this new version already accomplishes most goals discussed an year ago - much more that appeared along the road is still in need to be completed.

You can get the latest version <a href="http://boot-land.net/winbuilder/">here</a> and the release topic with full details of changes were posted <a href="http://www.boot-land.net/forums/index.php?showtopic=2611">here</a> and <a href="http://www.911cd.net/forums//index.php?showtopic=20066">here</a>

For the moment I will spend some time getting my hands back into scripting and having some fun with boot disks - since Vista and some newer tools it has been really good and interesting to learn and try out new things.

Don't leave out any ideas about new projects - I'm all eyes and hears for new ideas that can either improve the existent projects or bring new solutions where we've never focused before.

Let the games begin! :)

-- Nuno Brito

BartPE Core

How would a wb project look like if it was mixed with bartPE? To answer this question, Thuun has just released a project that will create a vanilla bartPE in unattended mode and then apply some of concepts already applied for nativeEx based projects. I think the mix is an overall winner for both sides. wb users can recycle their bartPE plugins while bartPE users can enjoy some of the things we've doing around here. Fun to see the term wrapper applied to winbuilder since it reminded me the time when batcher was being developed and it was indeed meant to be used as wrapper to bartPE - a year ago very little was know about these miniPE's - there were rumours of people achieving 21Mb while some others custom crafted these boot disks to become smaller and smaller. It's good to see that today this is no longer a black magic art and that people can get all these results in a completely automated fashion. We've reached 14Mb with picoXP and 31Mb with the explorer shell - later came nativeEx giving completely localized hives and we've wrapped the year with VistaPE and a bit of mobileOS (still under work). Good to see solutions that finaly evolve from the dummy mkisofs method used for so long. Let's see how far these new developments can go and what else we can still learn with them.

-- Nuno Brito

ImgBurn available as script

A <a href="http://www.boot-land.net/forums/index.php?autocom=Downloads&amp;showfile=22">new script</a> has been uploaded called <a href="http://imgburn.com">ImgBurn</a>. This little tool (around 1Mb) is a very good and free way to burn images to CD and DVD's. I've been looking for some while for a tool capable of working on my home DVD-RW and most of them failed for some apparent reason. Only Nero and Alcohol seemed to be able to burn images without errors or failing the burn operation.

While writing this script I've also noticed that a command - ExtractAndRun - was not working as expected. I guess very few people give any good use to this command and this could be reason why it escaped for so long to be fixed.

How does this command work? Very simple - you have your script with files inside and imagine you just need to run or open a file inside, you use this command for these situations.

It will extract the file, run it (with parameters if mentioned) and then delete it from the temporary folder - all this in a single line of script code - maybe that's why I like it so much, the simpler the better..

There is a bug that I couldn't properly solve - you can only open a single file at each time with this command. Try pressing the License view button inside this script to see what I mean - I've tried a lot of different things (creating random folders to avoid overwriting the same file, using different handles, trying to supress error messages and etc, but it still raises an error box for some strange reason). At least it will always delete all temporary files regardless the exceptions raised on this unfortunate case, maybe soon I get some more time to dig deeper and see why it happens. I also think this only occurs on the interface and not while the script is running inside a project.

In the meanwhile, enjoy this script and this good program - a real life saver when you need a good free solution to burn an image.

-- Nuno Brito

Near the stable release..

A new wb is very close to be released. Still some details to be added or corrected but most work as been done for this version to be considered completed. A lot of ideas and things needed to do are already planned for the next version - they won't be started now because it has been a long while since a stable wb has been released and we've already added much more features and bugfixes that would be quite welcome to a stable edition. Hopefully within days this will be possible to be published.

Stay tuned..

-- Nuno Brito

Help documentation

The new help documentation is finally done and this is a good way for people to see and understand how to use wb and respective projects.

Most commands were described with details and examples on how to be used, projects were also mentioned to help understanding the needed requirements and features - still missing some of the newer commands added on these last beta binaries.

Easy to follow guides are also present so that new users can quickly know how to start their projects and get them working fast with enough ground information to know what to do.

We still have the wiki documentation available, but the idea is to make this sort of documentation reachable whenever people start wb - even when it is offline. To make this possible, the help system will be placed under the tools folder of the main server and this ensure that everyone downloads these help pages, these files weight ~350Kb (including images) but I'm sure most users will find them very valuable.You can also print the pages if needed.

You can view this help manual <a href="http://boot-land.net/winbuilder/help">here</a>

Wasn't yet placed on the Downloads Center since I'm quite sure that others will find a lot of things needed to correct or add and way it's much easier to just upload fresh files instead of uploading a new download server (maybe an ftp upload synchronize tool for binary files in wb is a worthy feature to be added?)

All comments are welcome to make the pages more complete for everyone starting fresh.

Hope they can help! :)

-- Nuno Brito

MedEvil and Ove are back..

This sounds promissing! In overall this is very good to hear because both have really great ideas and very different perspectives and methods. I'm quite happy to see them back into our community - most of the "old" gang is grouped again.. ;)

Just hope the next beta is good enough for the newer testings - a lot of recent changes improved performance but have also made some nasty bugs appear and these can also be fixed, but slow the overall improvements progress and take more time to get completed. On a bright note - most of these bugs were already solved this week, only missing to correct the behavior of wb whenever it doesn't download the updates.ini from the web server (we can't ping to check if the server exists) and this still needs some work. And then up to finish up to add support for language translations.

Would be really good to extend the ability to extend language support to the scripting language itself and be able to use local terms for common actions (like "Copying..", "Creating folders..", "Extracting..") but now it's time to get a new stable version available, let's how this can be done.

:)

-- Nuno Brito

Renaming API scripts to Application scripts

After some messages exchanged with thuun and MedEvil we've come to the conclusion that a more user friendly name should be used since API denotes to inner functions from wb itself or even confusions with win32 API and would likely scare most people when starting fresh to use it.

The new name for scripts using this coding technique should soon become known as "application scripts" which seems to best describe their task - add applications on projects.

For all other specific tasks it's still recommended to use project specific scripts but the goal here is to be able to provide a work platform that can be shared by more projects.

So far we can use these scripts to create the folder on the programs location, extract all files from the script and add a shortcut on desktop/start menu or even autostart.

Still some more functions needed to add:  Add dependencies from a source, write/read from the registry and the ability to associate file or start services.

A long way to go, but work is being done..

-- Nuno Brito

Back to XP on my work laptop

I like Vista and it sure has a lot of good reasons to why I like to use it - but I want to go back to my testings and reinstalled XP back on my work laptop last night (a fujitsu-siemens, dual core CPU with 1Gb RAM) and the difference was surely surprising - everything works faster.... ;)

Had some troubles because this laptop had a sata drive which my Windows XP install Disc didn't recognized, so I recreated a new image with slipstreamed drivers for mass storage devices.

I used the <a href="http://driverpacks.net/">DriverPacks</a> tool and the new image worked really great, installing the "new" OS on this laptop quite well.

Only missing to add more drivers for Wifi and Graphic card support, but this is something that I will keep testing and will be posting my experiences soon. This could even be applied as wb scripts to help automate the whole process of adding drivers from BTS and recreating an image.

The laptop is clean and ready to start installing modified XP sources and boot discs during the next weeks.

More news about this soon..

-- Nuno Brito

Help pages for wb

The new set of help pages for winbuilder has been concluded and grammar has been revised to correct the misspellings - thanks go to thunn for his patience at this very lengthy task.

These pages will soon be uploaded and should become a good starting point to help out others getting started with wb. We've tried to cover most of the doubts that usually appear - especially when starting up for the first time. A complete syntax page was also added to properly explain how to use the available commands.

Users get these pages from the download center since they'll be placed inside the tools folder or will be able to access them online directly from the update server location - and this way we can keep a single location for both offline and online help resources.

We also have the wiki, but the main idea was to provide offline content that could be printed if needed or viewed at any given time. This way people don't need to go online and can always read up more details about scripting.

Of course that there will always be a lot of details needed to correct or add on the pages, and more work will be done to make things better and easier to use.

:)

-- Nuno Brito

API scripting

A few scripts were posted on under a new category called API scripts. These are meant to help people starting up with scripts and also a way to provide scripts that can work under all sort of compatible API projects.

Still a long way to go until we can have this method fully optimized, but so far the results are very good and we can already create scripts that work under LiveXP, nativeEx, nativePE and VistaPE - hopefully extendable to  more projects in the future.

Please use them as example to create your own scripts. I'm also working on some additional tools to ease the task of producing and publishig scripts.

Have fun!

-- Nuno Brito

Back to work..

Seems we're back to normal again - no more error 500 pages for a few days and some of the addons are carefully being activated again.

Also been taking this time to work on the documentation pages for winbuilder. Still missing to publish a new beta that fixes the latest changes on the run command, but the new version should be just about ready to become available during next week.

There are also some interesting news from the bartPE support as Thunn  is already working on a project to apply tweakings on bartPE boot discs. This might be fun to try out. Would be good to see more people working on this since we can already make so much in unatended mode that it would be fun to go back to our roots to see how much have boot land people really done and explored over this last year.

Also hope to help more with scripting after this release since most important matters to solve are already being completed (download support for proxies and proper help documentation).

Also good to see more people joining in and creating their scripts, this is all very motivating - thanks! :)

-- Nuno Brito