Tutorial on how to use...

Issues related to Enigma Virtual Box
Post Reply
garchev
Posts: 1
Joined: Sun Oct 21, 2012 2:38 pm

Tutorial on how to use...

Post by garchev »

Hello all,

I am new to EVB and I try to understand how exactly it works. I understand that this is not the type of "capture image before- install-capture image after" applications.

So, if I have an already installed app which contains the main .exe in the main app folder and other files scattered around the system, is it only sufficient to point the input file to the main .exe and then to add the main .exe folder to the file list and then EVB will find and package all the needed files, folders and registry, etc., even the ones that are not in the main .exe? Could I just point to the main .exe and EVB will determine all the files and folders needed, without even adding the main library?

One review I came up with was suggesting this: http://www.softwarecrew.com/2012/04/eni ... xecutable/

Or, is it that I ABSOLUTELY need to know ALL the files and folders + registry for a given app to be able to package it?

What are the other possible ways to use EVB? Are there some more detailed tutorials on how to use EVB?

Thank you in advance for your help and apolOgies if I ask basic questions.
Enigma
Site Admin
Posts: 2939
Joined: Wed Aug 20, 2008 2:24 pm

Re: Tutorial on how to use...

Post by Enigma »

Hi garchev,

Yes, commonly you should know all the files that application uses to bind all of them to single executable.
And yes, there is no feature that allows to determine all the files that application requires.

Why there is no such feature? Because it is really hard to do, saying more, it impossible to do. Of course, something like that can be made, but it won't work for all applications and it will add too much useless files to the package. Some of our competitors has such options, but final executable may not be compatible with the all versions of Windows or may be too huge in size.

Enigma Virtual Box allows more accurate configuration where only required files are being added to the file.

Registry virtualization is not always necessary (for example, if you do not use ActiveX/COM components), you may just enable it in the program and this will mean that all changes to the registry will be made inside virtual system and won't touch real registry.

But for the files - you have to have full tree of the files that program use.

There is no any tutorial, because the usage is quite easy. If you have a folder with some application, select the main exe and drop other files in the Files tree, in the %DEFAULT FOLDER%.
newuser
Posts: 49
Joined: Tue Apr 13, 2010 5:43 pm

Re: Tutorial on how to use...

Post by newuser »

Just addin one common problem, which enigma enlighten me recently, or else I would be still be stuck in the dark for a very long time(months actually).

If after packing all required files into one single exe A, but that single exe called A.exe wont run, then also pack in the main executable called B.exe into the pack files too. Then after packing into one single exe called C.exe, rename C.exe into B.exe.
Then most probably, the pack B.exe would run just fine.

This method is mostly for main exe files that are bytecode. :D

Editied, this method also apply to other type of main exe files like .net etc. Cause I try it with a .net A.exe as main exe too, sometimes doesnt execute when run but freeze and you could see it in taskmanager, but if I pack in the .net A.exe into the virtual box as well, and after packing rename the A_boxed.exe into A.exe. Then it run fine. :D
Last edited by newuser on Sun Nov 18, 2012 3:29 pm, edited 4 times in total.
JTMoleBoxed
Posts: 5
Joined: Fri Oct 26, 2012 1:59 am

Re: Tutorial on how to use...

Post by JTMoleBoxed »

I have the same problem as garchev. I'm new to Enigma Virtual Box, and am confused about the most basic aspects of how to make it work--even after reading the help file and your reply to him.

For instance, you said, on Oct 22: " If you have a folder with some application, select the main exe and drop other files in the Files tree, in the %DEFAULT FOLDER%." Do you mean that I should include in the file tree all the files in the installation folder EXCEPT the main executable, which will then only be listed in the "Input file name" line? Or, should the main executable also be listed in the file tree?

In terms of folder structure, should %DEFAULT FOLDER% always be the top level folder included under "Virtual Box files," even if the real location of the files in the file system is "Program Files\Target app" and "ProgramData\Target app?"

From the preceding example, you can see that I am working with an app installed in Vista. However, if I select "new folder," I find that a number of the provided environment variables point to folders in XP installations that are no longer available in Vista, while folders only found in Vista are not present. How would I then designate folders appearing only in Vista, such as Users and ProgramData?

With regard to using drag and drop for the purpose of populating the "Virtual Box files" list, I run into a situation that seems like it will cause a problem. To continue with the previous example, I can successfully drag the folders "Program Files\Target app" and "ProgramData\Target app" into the files window, where they show up as subfolders of %DEFAULT FOLDER%. However, the files list does not show the full path (as it exists on the HD) to those folders. How can EVB find the files to pack without the full path name?

My next question involves the situation where the target app writes entries in the Registry. That is the situation with almost every application that runs under Windows, except those designed to be portable. Therefore, I'm confused about why there is a selectable option to "enable Registry virtualization," since most apps will fail to run if they don't find the Registry keys that they expect to have been created on installation. Shouldn't this option always be enabled?

On a related point, if the options to "enable Registry virtualization" and "allow writing to the virtual registry" are NOT enabled, will the target app write values to the "real" registry when run?

Finally, under the "Registry" tab, I notice that EVB does not identify the keys that the target application needs/uses when it runs. I had hoped that it would include technology similar to that found in uninstallers such as Total Uninstall and Full Uninstall, that can make such an identification. Without such automatic detection, there seems to be no alternative to manually creating entries for every key, value, and data value created by the target app when it is installed manually. Since an installed app frequently will create dozens of Registry entries, the time involved in recreating those entries, even using copy-and-paste from a REG file, could be enormous. Am I missing something? Is there a simpler way?

Thanks for your help in getting me started. You've done a brilliant job creating this program, and I hope I can use it.

Thank you.
Enigma
Site Admin
Posts: 2939
Joined: Wed Aug 20, 2008 2:24 pm

Re: Tutorial on how to use...

Post by Enigma »

Hi JTMoleBoxed,
JTMoleBoxed wrote:For instance, you said, on Oct 22: " If you have a folder with some application, select the main exe and drop other files in the Files tree, in the %DEFAULT FOLDER%." Do you mean that I should include in the file tree all the files in the installation folder EXCEPT the main executable, which will then only be listed in the "Input file name" line? Or, should the main executable also be listed in the file tree?
You should not add main executable in the files tree.

Main executable is a core of application. All other files will be handled around this core.

So main executable should be selected as a file for packing, and all other files added in the files tree.
JTMoleBoxed wrote:In terms of folder structure, should %DEFAULT FOLDER% always be the top level folder included under "Virtual Box files," even if the real location of the files in the file system is "Program Files\Target app" and "ProgramData\Target app?"
This does not matter where your application is installed. It could be installed in Program Files folder, in the root folder of disk C: or on the flash drive. There, you should think that you have a folder with the program. The folder with the program is named %DEFAULT FOLDER%. In this folder, there are located all main files of the program, and especially - main executable.
So %DEFAULT% folder is a folder where the main executable is located.

If, for example, your program, reads some files from %MyDocuments% folder, then %MyDocuments% can be added to the tree too (if it is necessary and if you would like to hide/virtualize files form this folder too).
JTMoleBoxed wrote:From the preceding example, you can see that I am working with an app installed in Vista. However, if I select "new folder," I find that a number of the provided environment variables point to folders in XP installations that are no longer available in Vista, while folders only found in Vista are not present. How would I then designate folders appearing only in Vista, such as Users and ProgramData?
Why not, there are such folders. If you right click on the files tree and select Add Root Folder, you will see many folders that are supported in Vista too, like %Application Data%, %Local, Application Data% etc.
JTMoleBoxed wrote:With regard to using drag and drop for the purpose of populating the "Virtual Box files" list, I run into a situation that seems like it will cause a problem. To continue with the previous example, I can successfully drag the folders "Program Files\Target app" and "ProgramData\Target app" into the files window, where they show up as subfolders of %DEFAULT FOLDER%. However, the files list does not show the full path (as it exists on the HD) to those folders. How can EVB find the files to pack without the full path name?
If you double click on a file (or right click - Properties dialog), you will see the properties of this file, it's virtual local and location in the real file system. These settings are being saved to project file and are used while packing.
JTMoleBoxed wrote:My next question involves the situation where the target app writes entries in the Registry. That is the situation with almost every application that runs under Windows, except those designed to be portable. Therefore, I'm confused about why there is a selectable option to "enable Registry virtualization," since most apps will fail to run if they don't find the Registry keys that they expect to have been created on installation. Shouldn't this option always be enabled?
That's very simple. Not all applications write something in registry while installation. Saying more, very rare applications do that, or, at least, this does not much matter if the registry value was created while installation or no.
You are right, registry virtualization should be enabled for portable applications. But in some cases, programs requires to save some settings to the real registry. In this case, registry virtualization should be disabled.

Registry virtualization is also very useful for registering of ActiveX/COM components without administrator privileges.
JTMoleBoxed wrote: On a related point, if the options to "enable Registry virtualization" and "allow writing to the virtual registry" are NOT enabled, will the target app write values to the "real" registry when run?
Yes, sure, it will write to real registry.
JTMoleBoxed wrote: Finally, under the "Registry" tab, I notice that EVB does not identify the keys that the target application needs/uses when it runs. I had hoped that it would include technology similar to that found in uninstallers such as Total Uninstall and Full Uninstall, that can make such an identification. Without such automatic detection, there seems to be no alternative to manually creating entries for every key, value, and data value created by the target app when it is installed manually. Since an installed app frequently will create dozens of Registry entries, the time involved in recreating those entries, even using copy-and-paste from a REG file, could be enormous. Am I missing something? Is there a simpler way?
There are plans to make an ability to import registry keys from REG file, but nothing more.
As I wrote, imho, it is not well developed/designed application, if it does work if some registry values were not created while installation. Usually, if there are no such registry keys/values, program simply re-create them. And if so, you do not need to add custom registry keys, just enable registry virtualization.
JTMoleBoxed
Posts: 5
Joined: Fri Oct 26, 2012 1:59 am

Re: Tutorial on how to use...

Post by JTMoleBoxed »

Thanks for your thoughtful and detailed answers, Enigma. The only way to see how well I understand what you said is to do some more work with the program. That won't happen right away. If I don't post back, that will mean that "I got it." I hope that's the case. Thanks again.
Enigma
Site Admin
Posts: 2939
Joined: Wed Aug 20, 2008 2:24 pm

Re: Tutorial on how to use...

Post by Enigma »

If you won't succeed with something, you may always ask me for help. If you have some application that unable to virtualize, post it here and I will show you an example.
JTMoleBoxed
Posts: 5
Joined: Fri Oct 26, 2012 1:59 am

Re: Tutorial on how to use...

Post by JTMoleBoxed »

Thank you. I may need to take you up on that offer.
Post Reply