Posted: Thu Feb 28, 2008 5:11 pm
Yup, I'll try and add this in the next version. Thanks for the feedback
.

http://www.purebasic.com
https://www.purebasic.fr/english/
Let me know if it doesn't go. In this case, i'll get "me hammer" ready.-Added Hungarian translation (thanks to AndrĂ¡s Nagy)
-Now each version of BIM uses it's own configuration file (because of the encoding)
-Rewrote and optimized massive parts of the uninstaller, it's now using a different approach to remove the programs and also decreased it's size. Also, the folders are correctly deleted now and all the traces are cleaned
-Fixed some glitches in the interface (some labels were small, truncating the text)
-Made the uninstallation support optional (for releasing quick updates)
-The "Classic" graphics set is loaded by default (making it easy to quickly make a project)
-Made minor cosmetic improvements in the stub (flattened some controls, morphed some lists to match the color of the window)
-Removed the 'Uninstall older versions' option (incompatibility with older versions, inneficient)
-Added rollback feature: When the user cancels the installation, the files and folders that were already installed are cleaned up before the installer exits to avoid useless space usage
Link: http://www.bytessence.com/bim.html- Fixed bug in uninstaller which did not remove the start menu internet shortcut
- Fixed bug causing the uninstaller not to delete the main program folder in Program Files (the handle was not closed)
- Resized settings window for better visibility
- Added Russian, Turkish, French, Kazakh and Greek translations in the package
Code: Select all
delayExecution(msec)
programGroup.s = getSpecialFolder(#CSIDL_PROGRAMS) + programName + "\"
deleteDirectory(programGroup, "", #PB_FILESYSTEM_RECURSIVE | #PB_FILESYSTEM_FORCE)
Code: Select all
SetFileAttributes_(Folders()\Path,#FILE_ATTRIBUTE_NORMAL)
RemoveDirectory_(Folders()\Path)
Another thing is to make sure your program doesn't use the actual folder you're trying to delete:Return Value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
The RemoveDirectory function marks a directory for deletion on close. Therefore, the directory is not removed until the last handle to the directory is closed.
Code: Select all
SetCurrentDirectory(GetPathPart(ProgramFilename()))
Oh in that case... There must be something wrong there
Code: Select all
delayExecution(msec)
programGroup.s = getSpecialFolder(#CSIDL_PROGRAMS) + programName + "\"
deleteDirectory(programGroup, "", #PB_FILESYSTEM_RECURSIVE | #PB_FILESYSTEM_FORCE)
The download link is in the fist post. Let me know if there are any problems.-Cleaned up and optimized the source code
-Re-designed the event handlers, now BIM and the generated installers are responding much better while working
-Added option to disable the splash logo upon startup
-Added Windows Server 2008 on the OS list and separated some other OS's
-Added icons on some of the buttons
-Added remaining time indicators for BIM, the installer and uninstaller
-Added improved progress calculation
-Added new task dialogs
-Added environment variable editing
-Added configuration file editing (ini)
-Added gradient color background window option to generate old-style installers
-Added a new, separate unpacker tool for the created installers
-Added a new, automated language management system
-Added more error checking
-Fixed some image memory leaks
-Fixed erroneous .NET Framework detection
-Fixed the installer font size
-Fixed uninstaller that was forgetting to delete the script in the Temp folder
-Fixed uninstaller bug that was preventing the removal of read-only files
-Fixed installer rollback action when cancelling the installation
-Fixed optional installer creation option that was ignored
-Fixed the path tokenizer that was failing to return a correct value on Windows NT4
-Improved NT4 system support
-Converted all the internal icons to 256 colors so the program looks better on older systems
-The compilation files are now placed in the Temp folder instead of AppData
-Speeded up some parts
-Re-designed all the wizard graphics
-Removed UPX executable from the package (not necessary anymore)
-Removed HTTP download task (useless)
-Removed custom icon choosing
-Re-wrote some parts of the help file
-Fixed many other small issues
Please let me know if you stumble across a bug.- Added version information updating capability, each executable package will carry your product name, version, company name, copyright, etc. and will show up in the "Version" tab (on all operating systems)
- Added main icon changing capability for the resulting executable (on all operating systems)
- Added new German translation in the package
- Changed the startup splash-screen. You can now also click on it to close it
- The uninstaller now supports all the string variables that the installer supports
- Reintegrated UPX compression (the stub cannot be pre-compressed anymore because of the inline resource patching)
- Fixed a bug in the CLI compiler (the OS detection routine)
ThanksWow, this looks amazing, nice work Inf0Byt3!
I wanted to add this in the past but couldn't find a suitable diff algorithm at the time. The classic byte-byte scanning system is too slow and doesn't cut back too much on size. I'll make some research about this.I remember looking around a few installers a while back, I think Clickteam made one that created patches so you could just patch an exe rather than reinstalling new versions of software. Will your program support this at some point maybe?
Hehe, I hope I finish something soon so I can use this!![]()
A good thing is that from now on the translations for the main program and the installer module are separated, so if you have free time you can translate just the installer (~100 short lines).-All program code has been rewritten for better speed and usability
-Major interface enhancements
-Added dedicated task dialogs (less clutter)
-Added new advanced tasks for the uninstaller (delete files and registry entries)
-Added better .NET Framework detection
-Added a dedicated dialog for the building process
-Added a new step in the installer in which the user can review the settings
-Added a new '<UserData>' variable
-Added a new way to choose files for the advanced tasks (dedicated dialog)
-Added a new way to choose path variables
-Added redesigned graphics for the installer
-Added a 'Test installer' button for running the generated installer
-The main program and installer localization files are separated now
-The installer executable icon can now have multiple layers (better look on Vista/XP)
-The title of the installer window can be customized
-The compression level can be adjusted properly (5 steps available)
-The installer can check for open windows and prompt the user to close them
-The installation path can now be read from a registry value
-The installer can find previous installations and prompt for removal before installation
-The background window now also accepts pictures (will be scaled automatically)
-The tasks can be restricted to run only on some operating systems
-The tasks can use external icons (run and shortcut tasks)
-The project can be saved without having to choose the file every time
-The uninstaller can skip certain files from uninstallation
-The programs can be run before or after installation / uninstallation of the files
-Removed the need for temporary files during installation
-Removed unicode support (hard to maintain)
-Removed the splash screen
-Removed 'all users' path variables
-Removed NT service and other tasks (they were of no real use)
-Fixed several bugs found in the previous versions