Version history for Restore Point Creator
Changes for v6.9 Build 2 - v6.9 Build 3
- This is an out of band emergency update. Backported a fix from the dev branch to fix an issue with exporting log files that resulted in corrupt log files. This was caused by a regression in version 6.9 Build 1.
Changes for v6.8 Build 1 - v6.9 Build 2
- Fixed a bug in which if the log file doesn't exist the program fails to create a new one. Somehow this bug escaped the month of testing in the public beta branch. Thanks goes out to Charles Ray for reporting this issue to me.
- Version 6.9 Build 1
- ◾Added the ability to show System Restore Space for all system drives to the Disk Space Usage tool.
- ◾Fixed a possible crash while updating that makes the program appear hung during the update. Now instead of just sitting there the program will give you an error message.
- ◾Removed several legacy functions that were cluttering up the code.
- ◾Fixed a bug with the jumplist tasks in which the Please Wait window disappeared before it should have.
- ◾Fixed a possible NullReferenceException in the convertLineFeeds() function that's used on the Event Log window.
- ◾Completely rewrote the log file access functions to use lock files to indicate that the program has a lock on the log file. As long as the lock file exists the program will wait in a spin lock.
- ◾Fixed an issue in which if a corrupted log file was detected the program didn't immediately write a new log file to disk.
- ◾Added checks to see if the application log file is empty.
- ◾Merged in the SmoothProgressBar User Control directly into the source tree instead of referencing an external embedded DLL. This should make the resulting program EXE file slightly smaller in size.
- ◾Fixed a bug in which importing an exported settings file that contains legacy settings that are no longer part of the program will cause a program crash. Thanks goes out to Rob Murphy for reporting this issue to me.
- ◾Changed the log type for crashes that may arise in the addPrioritySettingsSubRoutine() function to a Warning type instead of an Error.
- ◾Changed it so that we only delete the log lock files during the application initialization phase if there's no other instances running.
- ◾Added some sanity checks to the getServiceStartType() function.
- ◾Added a right-click context menu to the event log list on the Application Event Log window.
- ◾Added a prompt to ask you if you do indeed want to delete the application event log.
- ◾Fixed a small bug in which the delete log button wasn't disabled after leaving the event log list.
- ◾Added a spin lock to the Application Event Log window's log file watcher to wait until the lock file is deleted before attempting to get stats on the log file such as the size of it. This fixes a small bug in which the size of the log file was shown as zero bytes because the log file had not been completely written to disk before the log file watcher's code was executed.
- ◾Fixed a significant memory leak on the Application Event Log window. The leak was caused by not cleaning up the cached event log data that was held in memory after closing the window. Depending upon the size of the log file it could mean that multiple MBs of data was left on the program's heap.
- ◾Fixed another memory leak on the Application Event Log window. The leak was caused by not cleaning up the images list after closing the window.
- ◾Changed many of the functions in the eventLogFunctions Namespace to use a centralized XmlSerializer Object instead of creating new objects every time the function is called.
- ◾Changed the text of the button that refreshed the log file on the Application Event Log window.
Changes for v6.7 Build 3 - v6.8 Build 1
- * Improved application startup performance by nearly 60%!!!
- * Removed a legacy settings variable.
- * Fixed a minor bug in which the log export function would be triggered even on a new installation.
- * Removed the seconds display from the bottom of the Application Event Log window because more often than not the seconds number was always 0.
- * Added additional wording to the time display at the bottom of the Application Event Log window.
- * Converted logID variables from ULong to Long as per the specifications of the restorePointCreatorExportedLog() Class Object.
- * Made it so that corrupted log files are saved with an incremented number as part of the file name. This is to as to preserve older corrupted logs.
- * Included some minor changes to the jumplist task creation code.
- * Put in code to check the Startup type for the VSS system service in the "Manually Fix System Restore Tool".
- * Included code to convert an Integer error code to a Hexadecimal value in the part of the code that falls back to Windows APIs to create a restore point.
- * Added some code to write the startup type for the VSS System Service to the application event log as part of the "Manually Fix System Restore Tool".
- * Added some code to attempt to start the VSS System Service as part of the "Manually Fix System Restore Tool". If it fails to start the program will log the error to the application event log.
- * Added task priority code to many of the functions that deal with scheduled tasks.
- * Added code to set and check for variables in the Registry so that functions that run at application startup don't need to be run if they have been run before.
- * Changed the Global Crash Handler window code to use the assembleCrashData() function to standardize the stack trace data.
- * Added extended exception messages to the parent process retrieval function to indicate why something went wrong if something were to go wrong, this includes messages.
- * Fixed one line of code in the areWeRunningAsATask() function to be more clear that's used in the application initialization code.
- * Changed two IF statements be only one IF statement thanks to the AndAlso Boolean operator.
- * Optimized the bytesToHumanSize() function to use less code.
- * Fixed one minor issue with the randomStringGenerator() function in which I didn't declare the returned data type.
- * Made it so that General unableToGetParentProcessException errors are logged as Warning event logs as versus Error event logs.
- * Included code to ask the user to manually submit a crash report to the Application Event Log window only if the crash report type is labeled as an Error.
- * Updated the embedded Microsoft.Win32.TaskScheduler library to version 2.7 Build 2.
- * Fixed a crash issue on launch of the program if the Segoe UI Font has issues with Bold text. This is a hack fix for the issue, it doesn't at all fix the issue with the Font itself. Thanks goes out to "Guy" for reporting this issue to me.
- * Added a Last Modified line to the bottom of the Application Event Log window.
- * Shortened the wording of the label that tells the user how long it took for the program to load the log file.
- * Added inner exception logging to the assembleCrashData() function.
- * Added a check to see if we are in update mode so as to not check for the parent process.
- * Added a way to tell the program to not check for the parent process, this is primarily used during the update routine that
Changes for v6.6 Build 1 - v6.7 Build 3
- * Fixed up the Convert Old Logs dialog box.
- * Removed the "Enable System Event Logging" setting, this is no longer needed since we are using our own log file for application logs. The purpose of the setting was if the user didn't want the program cluttering up the Windows Event Log.
Changes for v6.5 Build 2 - v6.5 Build 3
- This is an emergency out-of-band update. Fixed a major bug that caused the application to hang up while creating a system restore point. This was due to a bug in a system state polling function that gets the latest restore point ID number. There are several more fixes in the public beta branch but they're not yet ready for public release.
Changes for v6.4 Build 1 - v6.5 Build 2
- Fixed some last minute issues that came up after release. And to think that I debugged this for weeks.[/spoiler]
- [spoiler title=”Attention users have been having crashes with this program”]It has come to my attention that many users who have downloaded this program may be experiencing program crashes when using this program. I, the developer of this program, have tried to make this program as crash-proof as possible. A majority of users who have downloaded and used this program do not experience program crashes. Those who are receiving program crashes most likely are receiving these program crashes because Windows on your system is broken in some way. My own machines (including several virtual machines) do not have crash issues with this program. If you are receiving program crashes I suggest you download Tweaking.com’s Windows Repair Tool at http://bit.ly/winrepairaio, download it, and run the following repairs on your system.
- 01 – Reset Registry Permissions
- 03 – Register System Files
- 04 – Repair WMI
- 18 – Repair Volume Shadow Copy Service
- 25 – Restore Important Windows Services
- 26 – Set Windows Services to Default Startup
Changes for v6.3 Build 4 - v6.4 Build 1
- * Optimized much of the code used to parse Boolean values from the Registry.
- * Added EnableWindowsFormsHighDpiAutoResizing to the embedded app.config file.
- * Fixed multiple parts of the program to be thread safe.
- * Added better handling of Integer Strings to the List View Sorting code.
- * Simplified the RegEx parser used to the existence of numerical Strings with commas in it.
- * Cleaned up some code on the Update Notification window.
- * Added a Debug Mode and Build notation to the crash data that's written to the application event log.
- * Improved the operation of the Application Event Log search tool. This required a massive rewrite of the Application Event Log tool in terms of how it holds data in memory.
- * Improved code that's used to compare String values.
- * Included additional code to handle user.config file access violations that could cause the program to crash. Thanks goes out to Terry Lynch for reporting this issue to me.
- * Improved the window width restraints of the Disk Space Usage tool and Update Notification windows.
- * Merged in version 1.300 of the HTTPHelper class and a new version of the deleteAtReboot Class.
- * Fixed the support.convertErrorCodeToHex() function in which there was a possibility that "0x" wasn't prepended to the returned String.
- * Optimized the code of the addExtendedCrashData() function along with adding support to handle StackOverflowException.
- * Replaced the Please Wait window with a Please Wait panel built into the window itself. This major change to the program should go a long way in solving a lot of crash issues that people have been having with the program once and for all.
- * Fixed a grammar mistake on one of the dialog boxes.
- * Fixed a bug in which the label that tells you how many restore points are on the system wasn't updated after deleting selected restore points.
- * Fixed a bug in the file download routine in which it was telling the user to check the Application Event Log if an error occurs but the program wasn't logging anything to the Application Event Log for the user to check.
- * Removed an unnecessary thread declaration from the update checking routine.
- * Changed the way that custom colors and column orders are saved by the program in the applications settings data. It now uses a much simpler way of storing the data.
- * Removed the code to handle Specialized String Collections from the settings import and export code since it's no longer needed.
- * Added a limit of 6 MBs of files to be attached to the Official Contact Form. This is so as to not overload the mail server on my web server.
- * Changed the memory dump file type that's created when the program crashes. Hopefully it doesn't result in too big of a file.
- * Greatly improved application startup times by properly setting the process priorities such as the CPU and I/O priorities. Before these were set to below Normal when launching the program using the Task Wrapper which caused the program to run slower than it should have been, especially at application launch.
Changes for v6.3 Build 3 - v6.3 Build 4
- Fixed a small bug in the setBooleanValueInRegistry() function in which the Boolean value wasn't converted to a String value before the data was passed to the setValueInRegistry() function. This could result in incorrect data being written to the Windows Registry.
Changes for v6.3 Build 2 - v6.3 Build 3
- Added several additional checks to the WMI namespace functions to check for Null References. Hopefully this puts an end to the issues that two people have been reporting to me.
Changes for v6.3 Build 1 - v6.3 Build 2
- Patched a number of possible Null Reference Exceptions in the WMI code.
Changes for v6.2 Build 2 - v6.3 Build 1
- Added the ability to assign a maxdays setting at runtime while executing the "-deleteoldrestorepoints" command line switch. This is done by providing "-maxdays=(0-9)" at runtime. This change was scheduled to go live in version 6.2's public release but I've held it back for more testing.
- Took out much of the unhandled application exception and thread exception handling code and replaced it with simple logging instead along with message that the application is terminating and a process kill command.
- Fixed a bug in the "Create Restore Point at User Logon" tool in which it didn't delete the task when clicking on the "Stop Making Restore Points" button. Thanks goes out to Bill Boyle for reporting this issue to me.
- Included a possible fix to the Manage System Restore Storage Space window in which the height and width of the window is incorrectly set on some systems that have weird DPI settings. This would result in some elements on the screen being hidden from view.
- Merged in new version of the deleteAtReboot class.
- Merged in version 1.285 of the HTTPHelper.
- Added logging to the parts of the program that create scheduled tasks to try and figure out why creating tasks for some users fails and results in a program crash. The logging logs the name of the task that's being created.
- Updated the embedded Microsoft.Win32.TaskScheduler library to version 2.5.26.
- Removed a bit of code from the Please Wait window that seems to be causing some issues upon startup for some users.
Changes for v6.2 Build 1 - v6.2 Build 2
- I recompiled the program's main executable without the executable packing program that I was using to reduce the size of the program's executable file and also guard it against decompilers to protect my intellectual property. I was using a tool called "mpress" which can be found at http://www.matcode.com/mpress.htm but it appears to be triggering a lot of antivirus vendors to detect it as a virus. I have recompiled the program and redistributed it without compressing it. I have uploaded the main program's executable file to VirusTotal which is web site that scans a file with multiple antivirus programs and all but two vendors are showing that it's clean as proof that the new file is clean. You can view the analysis at https://www.virustotal.com/en/file/3b05f77d4a8512187795b56c643126894ee781c72d10a1dc976e89f11704308c/analysis/1493769023/ .
Changes for v6.1 Build 1 - v6.2 Build 1
- Added the ability to make the Please Wait window that appears when updating a System Modal window.
- Removed a system restore setup check from the WMI.createRestorePoint() function that's used by the program to create restore points. It was causing too many false positives which caused some users to lose system restore points.
- Added the ability to save the location of the update notification window.
- Fixed an issue in which a label on the update notification window wasn't being placed right after a window resize.
- Removed a system restore setup check from many parts of the program. It was causing too many false positives which caused some users to lose system restore points.
- Fixed an issue in which the message box telling you that the reserved space is set properly and that something else is wrong is obscured by the Please Wait window.
- Added application modal properties to the ERROR_SERVICE_DISABLED message box.
- Fixed an issue in which the handleLockedSettingsFile() function could be passed a ConfigurationErrorsException object when the function was expecting an IOException object. This has been fixed by changing the input parameter type to a general purpose Exception object type. Thanks goes out to Jack Reynolds for reporting this issue to me.
- Fixed a potential bug in which the "-deleteoldrestorepoints" command line switch wasn't working properly.
- Implemented a possible fix for an issue that's been eluding me for quite some time. Thanks goes out to Charles Ray for getting me a full memory dump file at the time of the program crash, this was extremely helpful in narrowing down where the bug may be in the code.
- Updated copyright line in the About box for the year 2018.
- Added copyright line for the task scheduler library to the About box.
- Updated embedded Microsoft.Win32.TaskScheduler library DLL to version 2.5.23.
- Added a reference a DLL that's needed by the new version of the task library.
- Moved a function from one part of the code to another, specifically the deleteAtUserLogonTask() function.
Changes for v6.0 Build 1 - v6.1 Build 1
- Added code to manage the list of file operations that occur at system reboot. Removed the MoveFileEx API declaration since we no longer need it. The deleteAtReboot Class replaces the MoveFileEx API declaration.
- Updated the uninstall info update code to indicate if the current build is a public beta or release candidate. This wasn't specified in the past.
- Implemented additional checks to see if the Settings file is locked at application startup.
- Added additional Null Reference checks to the function that opens the Please Wait window.
- Added a message box if an IO.FileNotFoundException is thrown when attempting to load the list of System Restore Points.
- Implemented some changes in the code that exports the settings to a file.
- Included some additional catches around the window focus commands.
- Updated the HTTPHelper to version 1.280 which includes better handling of DNS Resolution errors and a couple of fixes for the RegEx that parses out the domain name from the URL.
- Added special handling of DNS Resolution errors.
- Changed the message box that appears if you don't answer Yes to the UAC elevation prompt to be a system modal type message box.
- Added additional handling of IO.DirectoryNotFoundException's to the addExtendedCrashData() function.
- Added a function to verify window locations to make sure that windows never get lost by having a negative X or Y value.
- Fixed a bug in which many of the windows saved the location but never loaded it back.
- Updated the Fody package from version 1.28.3 to 1.29.4 which is used at compile time.
- Added missing references to make Visual Studio 2017 happy.
- Moved many of the PInvoke methods to a new special class called NativeMethods. This is another thing that I had to do to make Visual Studio 2017 happy.
- Fixed declaration of the SendMessage API.
- Fixed declaration of the QueryFullProcessImageName and SearchPath APIs to close possible security hole, this was due to using the incorrect variable/object type in the function declaration.
- Removed a bunch of unnecessary Dispose() calls.
- Brought back the 'Enable "My Computer" Right-Click Option' on Windows 10. This is because I was able to develop a workaround for an issue that was preventing me from doing this in the past.
- Developed a workaround for an issue in which I could not add any options to the My Computer right-click context menu on Windows 10. This workaround includes writing to the CLSID root of the current user's registry hive instead of writing to the HKEY_CLASSES_ROOT hive which is forbidden starting with Windows 10.
- Added code to the update XML file parser to simplify the data needed in the XML file, specifically the "betaRCVersion" node.
- Moved some code around internal to the program.
- Added the ability to ignore a version at update time. If you ignore a version it will ignore it when ever the program checks for an update and notate it in the application log that it was ignored.
Changes for v5.9 Build 1 - v6.0 Build 1
- Updated the HTTPHelper to version 1.266. This includes multiple fixes, improvements, and additions to the class library that handles all of the program's various HTTP requests.
- Included a new settings backup file type that's based upon XML.
- Renamed "Reboot System" to "Reboot Computer" in the Utilities menu.
- Added a Manual System Restore Fix tool to the Utilities menu.
- Added a message box to the restore point creation routine telling the user what to do if the program determined that doing an auto-fix to System Restore could have unintended side-effects.
- Included code in the downloadAndDoTheUpdate() function to detect if the user is on the beta update channel and if the update channel has been overridden to stable channel. If this occurs then the debug build is downloaded instead of the standard release (non-debug) build. This situation that could occur if updating from a beta/RC build to the next release build but there's no new beta/RC build after it, this is to make sure that if you are on the beta channel you get a debug build instead.
- Added an Advanced Mode for the Manage System Restore Storage Space tool. This has been added back due to a user's request.
- Included renaming of multiple internal variable names.
- Added a custom exception to handle certain types of errors in the program, specifically when trying to parse Strings into Integers.
- Fixed a possible bug in which a crash could occur if there are duplicate system restore point IDs when selecting restore points to be deleted. This is strange because it really shouldn't be happening, this fix should fix the issue. Thanks goes out to "George" and "Harry" (you know who you are) for reporting this issue to me.
- Added handling of the custom exception to the extended exception data logging function.
- Added error logging for errors while parsing system restore point ID strings into Integers.
- Fixed an issue in the update routine in which the Please Wait window obscures the message box telling you that a system reboot is needed to complete the update if something went wrong during the update procedure. This issue was fixed by closing the Please Wait window before showing the message box.
- Fixed an issue in which the uninstall info's DisplayIcon wasn't being set properly which resulted in a blank/broken icon in Windows Programs and Features.
- Minor code cleanups.
Changes for v5.8 Build 3 - v5.9 Build 1
- Fixed an issue on the main form when loading that could cause the program to lock up due to the Please Wait window being tied to the main thread of the main form.
- Fixed a false positive in the program when there are no restore points on the system in which the program asks to repair System Restore even though it doesn't need to be done. Thanks goes out to Charles Ray for reporting this issue to me.
- Added additional logging to the application update procedure to catch possible errors.
- Fixed the wording on the Update Notification text at the top when the update is a standard update but the text indicated that it was a Public Beta, this is wrong. This has been corrected.
- Implemented a whole new exported log file type. The new file type is based upon XML instead of a custom-formatted file type. The new file type is reslogx.
- Included some changes to some of the code that deals with the Event Log.
- Added four new functions to set values in the Registry for behind the scenes access to the Registry.
- Updated the update checking code to first download the release version when a new release version has been released when the user is the public beta branch. Before it would automatically skip to the next beta branch version. This was incorrect behavior. The newest release branch version should always be the version that's downloaded when a new branch version is released. If this situation occurs, the program sets a value in the Registry to trigger an update check the next time the program runs to check for any new public beta branch versions.
Changes for v5.7 Build 1 - v5.8 Build 3
- This is an emergency update. Fixed an issue in which the update code
Changes for v5.6 Build 1 - v5.7 Build 1
- * Fixed an issue in which the scrolling of the textbox on the Update Notification window doesn't disable the update countdown if the user uses a touchscreen to scroll it.
- * Added additional handling of several common HTTP error codes.
- * Fixed an issue on the Mount Shadow Copy Tool in which the Mount button wasn't disabled when a user clicked outside of the column in the list. Clicking on the Mount button would then result in an ArgumentOutOfRangeException exception. Thanks goes out to Nick Zdenkovic for reporting this issue to me.
- * Put in a question asking the user if the user wants to repair the system if error code 1058 is returned by the system restore point API.
- * Put in a question asking the user if System Restore Point Creator should attempt to repair System Restore.
- * Includes some changes to the some of the VSS related code.
- * Added a new app setting, Confirm Smaller Restore Point Space Setting; this is used by the Manage System Restore Storage Space window.
- * Fixed a bug in which the program was giving an error about the new size being smaller than the old size for setting the restore point space even though it was wrong. This was caused by a logic error in the code. Thanks goes out to Mark Bitter for reporting this issue to me.
- * Added the ability to turn off that confirmation via a checkbox on the window if you so chose to do so.
- * Added several new handlers for various exceptions to improve program crash reporting.
- * Updated HTTPHelper class to version 1.240.
- * Added full custom proxy support to the program, these changes camr about because of additions to the HTTPHelper class.
- * Added the ability to convert many integer error codes into hex strings for crash reports and error logging.
- * Added the ability to check for updates immediately after changing the software update channel. This removes an added step when changing update channels, namely the fact that you had to manually check for updates.
Changes for v5.5 Build 1 - v5.6 Build 1
- This version includes a number of fixes and improvements to the program.
- * Included code to handle an IOException if the application settings file is locked by another process. Thanks goes out to Brad Pospisal for reporting this issue to me.
- * Added two new command line switches, "-deleteoldrestorepoints" and "-keepxnumberofrestorepoints". Details about how to use these commands are in the About, Command Line Switches.
- * Included a work around for a situation in which System Restore
Changes for v5.4 Build 1 - v5.5 Build 1
- This version includes a number of fixes and improvements to the program.
- * Added a "Check All" and "Uncheck All" button to the batch confirmation window.
- * Cleaned up some of the code in the configuration backup and restore feature as well as adding some additional checks to the backup tool for path verifications.
- * Put in a workaround for a situation in which the Windows Clipboard was locked by another program thus can't be opened by my program. Thanks goes out to Philippe for reporting this issue to me.
- * Changed much of the code dealing with list view items to add additional attributes for better handling of data internal to the program. This includes multiple fixes and improvements to how the program stores internal restore point details such as the ID, name, and date created.
- * Enabled High DPI Awareness to many of the program's windows. Prior to this change only the main window was High DPI Aware.
- * Rewrote much of the code that works with the Windows BCDStore. Included a way to query if the Safe Mode Boot flag has been set or not.
- * Fixed some issues with the Please Wait window.
- * Included some code optimizations to the Application Event Log window.
- * One minor change was made to the to the performApplicationUpdate() function.
- * Included an event log entry indicating that you already have the latest version when checking for a new version.
Changes for v5.3 Build 1 - v5.4 Build 1
- This version includes a number of fixes, improvements, and an added feature to the program that's been requested for a long time.
- * Changed much of the multi-threaded code to use Background Pool Threads instead of spawning my own threads.
- * Simplified the GUI code of the update notification window.
- * Updated HTTPHelper to version 1.215.
- * Added the ability to auto-elevate the task when executing the program with the "-createrestorepoint" switch along with the "-name" parameter. This was broken in the past, thanks goes out to Paul Merritt for reporting this issue to me.
- * Added note to the Command Line Arguments window that the commands are recommended to be ran from an elevated command prompt. Thanks goes out to Paul Merritt for reporting this to me.
- * Fixed a bug in which the Reserved System Restore Space for System Drive window wasn't showing on top of other windows like it should.
- * Completely rewrote the selected restore point deletion routine. Now all confirmation of restore points happen on the main thread with only the process of deleting said restore points being processed on a background thread.
- * Implemented a way for the user to tell the program to not ask to confirm the deletion of each selected restore point if the user so chooses to do so once the confirmation dialog box is shown.
- * Finally added a long requested feature to the program, the ability to confirm the deletion of selected restore points in a batch.
- * Included some code optimizations on the Disk Space Usage window.
- * Finally fixed a handle leak on the disk space usage tool in which it was leaking system handles/objects.
Changes for v5.2 Build 1 - v5.3 Build 1
- This version includes a number of fixes and improvements to the program.
- * Updated the HTTPHelper class to version 1.200. The HTTPHelper class update includes a number of fixes and improvements to the code for many of the program's HTTP requests.
- * Added some thread sleeping commands to the application updating code as well as a notification that the program is updating during application updating. Hopefully this will make updating go smoother than in the past since we're going to wait for processes to close out instead of trying to kill them.
- * Included some internal code changes when it comes to the Please Wait window.
- * Added more logging to the application update routine to indicate that the update thread is sleeping for 5 seconds.
- * Fixed a bug in which the Application Event Log Search Tool would cause a crash.
- * Improved performance of the Application Event Log Search Tool.
- * Includes some code optimizations to the Application Event Log Viewer.
- * Massive amounts of changes to the code to better handle case insensitive string comparisons.
- There was one fix/commit that didn't make it into this version, it will be held back to be included in the public beta program.
Changes for v5.1 Build 1 - v5.2 Build 1
- * Moved much of the error handling for HTTP requests to a central error handler more better error handling.
- * Cut down on many of the error message that users could receive if an HTTP request error occurs.
- * Added multi-user support to the Create Restore Point at User Logon task.
- * Changed the type of Event Log that's written to the Application Event Log when an HTTP error occurs.
- * The program didn't give the user any feedback if the latest version was a beta version and the user chose not to receive beta versions (only RCs). This has been fixed.
- * Concentrated the decision to show either a message box or a balloon-type message based upon the user's preferences to a new giveFeedbackToUser() function. This cleans up much of the code so that there's not quite so many IF statements everywhere, just a call to a function.
- * Optimized much of the code in the deleteRPLifeIntervalValue() and giveFeedbackAfterCreatingRestorePoint() functions.
- * Wrapped the code that retrieves the task schedule data on the Task Scheduler's Form Load Event to better handle FormatException exceptions when loading invalid data data from the task's XML data.
- * Fixed the saving of the Update Message window size.
- * Made it so that there's not quite so many events that trigger the disableCountdown() function on the Update Notification window.
- * Cleaned up some code in the MyApplication_Startup responsible for loading several Registry key values for the program.
- * Included some changes to how the program accesses and closes out the RegistryKey objects.
- * Moved the loadExceptionHandler() in the application startup routine to be earlier in the code than in the past.
- * Fixed a possible ArgumentException exception in the function that kills processes that have a certain parent executable. This is mainly used during the application update routine to make sure that executable files aren't locked during the program update process.
- * Added the ability to save the size of the Official Changelog window.
- * Changed the way that the program stores and saves some user preferences.
- * Fixed a long standing issue in which the Please Wait window wasn't cented in the screen when launching one of the Jumplist tasks.
Changes for v5.0 Build 2 - v5.1 Build 1
- This version includes a number of fixes and improvements to the program.
- * Fixed many of the message box title strings to not use the main window title's as the basis for the title of the message box, it's now using a hard-coded string.
- * Corrected the spelling of the word "weird" in many parts of the program, I had it spelled as "wierd" which is wrong.
- * Changed much of the code used to get the active power plan's GUID from the system.
- * Removed the part of the code that changes the setting for the active power plan when the system is on battery power.
- * Added formatting of large numbers to the Application Event Log.
- * Added new SRSetRestorePointW() as a fall-back API to the program as a backup to the WMI method of creating restore points.
- * Added new code to hopefully handle errors from the system restore APIs better than in the past.
- * Added some minor code optimizations that have to do with empty String checks.
- * Added better error messages for when a WebException occurs. Thanks goes out to "Shannon" for bringing this to my attention.
- * Fixed first line of About message box, it should not be getting the name of the program from the main window's title bar.
- * Fixed Balloon Tip title bar to not be based upon the main window's title bar.
- * Removed some unnecessary error messages when my server doesn't respond properly.
- * Increased the amount of time the program waits on an HTTP timeout from 10 seconds to 30 seconds.
- * Moved much of the error handling for HTTP requests to a central error handler on the main window.
- * Includes some additional fixes for the Create Restore Point at User Logon task.
- There were a few changes/commits that didn't make it into this version and have been held back in the "dev" branch of the program from which public betas and release candidate versions are built. I built this general release version from version 5.0 Build 8 Release Candidate 3's code snapshot and cherry picked one additional commit from later in the "dev" branch to build this public release version. Some of the changes I made in later release candidates just weren't ready to be released yet and need more testing to make sure that those changes are stable.
Changes for v4.7 Build 2 - v4.7 Build 9
- I know that this version is out of sync with the regular update schedule but issues cropped up that needed to be fixed. The next update that's scheduled for September 1st will be pushed back to September 15th.
Changes for v4.5 Build 2 - v4.6 Build 1
- Cleaned up and optimized much of the code used to verify scheduled task path info. Included code to correct scheduled tasks that had been incorrectly created in the past with quotes in the path to the executable. This didn't technically cause an issue but correcting the paths so that they contain no quotes is still a good idea. Moved a routine that ran during the program's main form load routine to a run in a separate thread. Added some additional background thread watchdogs to terminate threads after 30 seconds of runtime. Updated embedded Microsoft.Win32.TaskScheduler library DLL to version 2.5.20. Included debug symbol files for the Task Scheduler DLL component that's part of the program's distribution. In the future whenever updating from a beta or release candidate of a previous version to a new version the program will download from the stable branch and not the beta branch of the new version. New update logic code has been implemented that no longer requires the need of a separate updating program. All updating is now done internally by the program itself. Added the ability for the Task Scheduler window to show the next and last run times of the scheduled task.
Changes for v4.3 Build 2 - v4.4 Build 1
- Updated the HTTPHelper class to version 1.120. Put some more wording on the exception/crash submission forms to tell users to provide valid email addresses. I still receive exception/crash reports with invalid email addresses. Seriously people, how am I supposed to contact you if you don't provide a valid email address? That's right... I can't. I'M NOT GOING TO SELL YOUR EMAIL ADDRESS TO SPAMMERS!!!
- Put some additional checks in the update download routine. Put some additional checks in the update download routine. Fixed a possible arithmetic error while calculating disk space usage percentage values that could cause a System.OverflowException when creating the disk usage bars on the Disk Space Usage Tool and the Manage System Restore Storage Space tool, this has been fixed by changing to a ULong or Unsigned 64-bit data type. Thanks goes out to Brian L. for reporting this issue to me. Some code has been optimized in the Manage Disk Space Usage tool. Added the ability to export program event log data to a file. You can add the event log data as an attached file on the Official Contact Form as well as sending it as part of the crash data that's sent to me for analysis. Some code organization has been done to many of the variables and constants that are used throughout the program. Fixed the sorting of days in the list of restore points in which the day numbers weren't being sorted properly. Thanks goes out to Andrey Chernov for reporting this issue to me. Implemented a potential fix to the getDeviceIDFromDriveLetter() function in which a crash could occur. Thanks goes out to Thurman Kilgore for reporting this issue to me. Reworked some of the exception handling code to better handle non-English operating systems. Added more handling of Management.ManagementException exceptions. Updated the copyright line in the program's assembly information.
Changes for v4.1 Build 4 - v4.1 Build 5
- Removed some legacy code and settings that were no longer being used by the program. Fixed an issue on the Task Scheduler window in which even if the Every setting was set to 1, the Every option was the one that was checked instead of the Daily option. Added a Clear button to the Search Event Log tool. The search button is disabled until you type something in. When clearing the search results the old search term you used is also cleared so that it won't be repopulated in the Search Tool when you open it. Added the ability to the Event Log Search tool to limit searches to specific log types. The checking of drives with full System Restore Reserved Space has been changed to only check the main system drive. This version will be the final version of System Restore Point Creator that will support Windows XP. Any future versions of this program will not run on Windows XP at all.
Changes for v3.9 Build 3 - v4.0 Build 1
- I HAVE TAMED THE BEAST! I have tamed the beast that is Windows System Restore on Windows 8.x and Windows 10! For those that don't know or haven't experienced this issue, Windows 8.x and Windows 10 has a tendency of deleting old restore points regardless of the fact that you have enough space allocated to store those restore points. It seems that as soon as those older restore points get older than 17 days they get deleted. This wasn't the case on Windows 7, Windows 7 would keep restore points for as long as you had the space to store them. This was one of the most annoying issues that I had with Windows 8.x and Windows 10, until now. Thanks to Gregory M. Day, he found that there is a background task that is run every time you restart your computer and guess what? It was what was responsible for deleting those restore points. So, Restore Point Creator now has code in it to disable this task so you, the user, now have more control than ever before over Windows System Restore. Many thanks goes out to Gregory M. Day, his observations helped cure Windows 8.x and Windows 10 of this System Restore curse. But enough about that... now onto the fixes. Included crash output for WMI Shadow Storage Provider Failures. Included a link to an FAQ on my web site in the program. Added an "Age in Days" column to the restore point list on the main window. You can control how many decimal places that the age of restore points are rounded in days by going to Program Options/Settings, Round the age of restore points in days to how many decimals? Added the ability to rearrange the columns in the restore point list. The placements of those columns are saved in the user preferences. Added the ability to just press the Enter button to begin search on the Event Log search tool. Backup files no longer contain settings that have no value. Did a slight redesign to the Event Log search tool window. The search button no longer has text, it only has an icon. It's also been moved to the right of the search terms text box. More user preferences are now being saved to the configuration backup file. Restoring a configuration backup no longer requires a program relaunch. Fixed a bug on the Task Scheduler window in which it was getting data from the wrong place for whether or not the "Delete Old System Restore Points After Scheduled Restore Point is created" checkbox is checked. Fixed a bug in configuration backup and restore tool in which Registry settings were getting mangled. Fixed a bug in the scheduled task for creating restore points in which the program wasn't logging the end of the task if the program was told to delete old restore points as part of the task.
Changes for v3.8 Build 2 - v3.9 Build 3
- Fixed a crash on the Mount Volume Shadow Copy window that could occur in a rare situation if there are two restore points on the system that have the exact same creation date AND time. Thanks goes out to Dan Ausili for reporting this issue to me.
Changes for v3.7 Build 3 - v3.8 Build 2
- Two more registry tweaks have been added to the program to facilitate the creation of more restore points by the system. The two additional registry tweaks have shown to improve the behavior of System Restore on Windows 8.x and Windows 10 in the sense that the system is now making more restore points similar to how things operated on Windows 7. Windows 7 used to make restore points for just about every little thing including Windows Updates; that behavior changed starting with Windows 8 and continued in Windows 10. The registry tweaks that I have added seem to bring the behavior of Windows 8.x and 10 to be more in line with how Windows 7 operated. I am in contact with a Microsoft engineer on Twitter that actually works on Windows to see if I can improve the behavior of system restore. Any and all info I can get out of him will hopefully improve the behavior of system restore on Windows 8.x and Windows 10.
Changes for v3.6 Build 10 - v3.7 Build 3
- Fixed crash on startup for Windows XP users. This issue only effected Windows XP users. Normally I don't test on Windows XP since Microsoft doesn't officially support Windows XP anymore.
- April 11, 2016 -- Version 3.7 Build 2
- Includes some changes to several web-related functions that deal with HTTP data.
- April 11, 2016 -- Version 3.7 Build 1
- After several public betas and release candidates, I present to you the first version 3.7 build. This new version includes A LOAD of fixes. Fixed selection of Event Log entries in the Event Log Viewer in which the display of the Event Log Entry didn't change unless you clicked on the list of event logs. This was caused by a regression that occurred in Version 3.6 Build 10. Implemented a whole new version update notification dialog to provide even more information to users. This is all in an effort to provide users with more control over how the program updates itself. New beta and release candidate versions will provide change log documentation. Moved many of the settings in the Program Options/Settings that have to do with software updates to be sub-items of a menu called "Software Update Settings". You can find the "Software Update Settings" menu as a sub-item of Program Options/Settings. This is to help clean up the Program Options/Settings menu to take up less space and to bring some organization to the Program Options/Settings menu. Fixed an edge case issue that could result in a program crash when deleting selected restore points. Thanks goes out to George for reporting this issue. Reworked the way the program boots the system into Safe Mode to perform a System Restore in Safe Mode. Included possible fix for old restore points being deleted by Windows itself. Included a handler for "BadImageFormatException" exceptions. Included a way for people to tell what version they have when the program pulls down the beta change log in the update dialog. Included a handler for a "ObjectDisposedException" exception with the Please Wait window. This should cause the program to handle the exception internally in a silent manner and (hopefully) allow the program to continue functioning normally. Included new code to parse command line arguments when relaunching the program with Admin user rights. Included a new "Launch with forced UAC prompt" jumplist task. Included several new icons for menu items. Fixed the placement of the buttons on the bottom of the main window on systems running Windows XP. Included a handler for "COMException" exceptions. Removed some unneeded stuff from the crash display window since the "COMException" handler will redirect users to how to handle it instead of having the text in the program itself. Fixed automated batch processing and deletion of old restore points in which the program ended up in an unending loop with the Please Wait window being shown with no way of closing it. Thanks goes out to JJ Menning for reporting this issue to me. Implemented even more checks than there already were for Null References (believe me, there's lot of them!) in the updateSystemRestorePointsList() function that's used to load the restore point list.
Changes for 3.5 Build 8 - v3.5 Build 9
- Includes a minor update and fix to the configuration restore tool.
Changes for 3.5 Build 6 - v3.5 Build 7
- Fixed a race condition on the Disk Space Usage Window in which if the window handle hasn't been created yet and the disk space usage gathering thread starts running the program could crash with a System.InvalidOperationException exception. Thanks goes out to Roger B for reporting this issue. This was a very rare issue. Included a fix for a possible issue in the Jump List Task creation code in which a System.TypeInitializationException exception may occur. Thanks goes out to Ade Putra Sinaga for reporting this issue.
Changes for v3.4 Build 17 - v3.5 Build 1
- First version 3.5 build. Includes some possible fixes for people having issues creating scheduled tasks. I'm still trying to narrow down why some people still have issues with this while many others, including myself, don't have issues creating scheduled tasks. Includes better handling of HTTP errors when attempting to check for updates. Any errors are logged to the system event log along with the URL that caused the error. Included better handling of System.Configuration.ConfigurationErrorsException exceptions. Included a framework to handle certain types of exceptions better than just showing the crash window. This is helpful for handling exceptions that may not be bad and that the program can recover from. Included a fix for users who are running Windows 10 on systems with monitors that have very high DPIs which results in the program's user interface being too small to read. If this situation comes up for you, go to the Program Options/Settings menu and click on the "Interface too small? Enable this option" menu item. The program will then enable a compatibility flag that tells Windows to render the user interface differently so that the user interface is big enough to read
Changes for v3.4 Build 12 - v3.4 Build 17
- Includes a possible fix for the program on Windows 8 or 10 systems that have high DPI monitors in which the program's user interface is too small to see. This fix is still in testing so to enable it you will have to go to the Program Options/Settings menu and enable the fix by clicking on "Enable this if the User Interface is too small on systems running Windows 8 or 10". Includes a fix for Windows Vista users in which the program may crash when trying to set the program up to create a system restore point at user logon. Thanks goes out to Willem for reporting this issue. Build 17 replaces Build 16 due to the program icon being missing from the build. Something went wrong during the automated compilation process.
Changes for v3.3 Build 3 - v3.3 Build 4
- Included a seamless way of switching to the debug build for troubleshooting issues that users may have. Put in a workaround for systems that seem to have an issue with launching the default web browser.
Changes for v3.3 Build 2 - v3.3 Build 3
- Included detection of server editions of Windows and have instructed the program to tell the user that the program is incompatible with server editions of Windows and that the program will close. Moved the mention of a "debug build" to the About program dialog. The crash data now mentions if the particular build you're run is a debug build.
Changes for v3.2 Build 18 - v3.2 Build 19
- Included the ability to tell the program not to check the Windows Active Power Plan, the default option is to check it. This setting is stored in the Windows Registry. System Administrators can disable this option in the program by creating a Registry String value in the program's Registry key (HKLM\SOFTWARE\Restore Point Creator) called "Check Windows Active Power Plan" with a value of "False". Included the ability to tell the program to silently modify the Windows Active Power Plan and not tell you anything, the default option is to tell you. Included a third way to retrieve the GUID of the Windows Active Power Plan. The process is as follows... check WMI, if that fails the program falls back to read the GUID from the Registry, and finally if that second option fails, it calls upon powercfg.exe.
Changes for v3.2 Build 17 - v3.2 Build 18
- Included an alternative method to the checkIfActivePowerPlanIsSetProperlyForWakingFromSleep() function to retrieve the active power profile's GUID using powercfg.exe if and when we can't retrieve it using the WMI. Thanks goes out to Will Friend for working with me on fixing this issue. Set a minimum size for the change log viewing window.
Changes for v3.2 Build 6 - v3.2 Build 13
- Added the ability to tell the scheduled System Restore Point task to wake the computer if in sleep mode. You can find this setting in the Task Scheduler window. I don't guarantee that this will work for your system, your particular system's hardware (ie. motherboard and system drivers) must be able to support this feature of the Windows Task Scheduler. If your system doesn't support this feature there's nothing I can do. All I'm doing is providing the option to enable this feature of the Windows Task Scheduler.
Changes for v3.2 Build 5 - v3.2 Build 6
- Minor update to build 5. Updated copyright line in program to extend it to the year 2017.
Changes for v2.9 Build 2 - v2.9 Build 3
- This is an emergency release. Includes additional fixes for event logging.
Changes for v2.9 Build 1 - v2.9 Build 2
- This is an emergency release. Includes fixes for some users who reporting crash reports for the System Event logger. Includes some fixes for Shadow Storage-related crashes. Includes some small user interface tweaks as well.
Changes for v2.8 Build 4 - v2.9 Build 1
- Whew! Nine beta builds later... Includes more fixes for Windows 10. Fixed multiple issues that may cause the program to crash when attempting to create scheduled restore points. Implemented logging messages to Windows Event Log for better tracking of what the program is doing. Implemented checks in the program to determine if the program is running as SYSTEM (such as when it's creating scheduled restore points) to prevent certain functions of the program from running due to Microsoft imposed limitations on the SYSTEM user. Fixed several issues with creating scheduled restore points in which users may not have them created. Changed the default name for scheduled restore points so that it's not in conflict with the default name that's used to create checkpoints in the program's GUI. Includes fixes to the function that determines if a restore point is needed by the scheduled restore point creation function when combined with custom names. Rewrote and simplified the code used to determine if a scheduled restore point is needed based upon the Every preference. Includes fixes to the function used by the program to parse restore point creation dates into Date objects.
Changes for v2.8 Build 2 - v2.8 Build 4
- Includes some additional fixes for machines that may have broken System Restore. Fixed a regression in which in some circumstances scheduled restore points may not be created.
Changes for v2.6 Build 12 - v2.7 Build 1
- Includes additional fixes for issues in Safe Mode. Included the ability to set a custom name for scheduled restore points. You can set your custom name by going to System Restore Point Utilities, Schedule creation of System Restore Points, and then clicking on the Set Custom Restore Point Name for Scheduled Restore Points button.
Changes for v2.6 Build 10 - v2.6 Build 12
- Improved upon the "Restore to Selected System Restore Point in Safe Mode" functionality that will eliminate the possibility of machines ending up in a Safe Mode boot loop in which the user can't get out of it. Though this issue was quite rare, I felt that even a tiny possibility was unacceptable. The changes include creating a whole new boot entry in the Windows BCDStore to reboot the machine with. Unfortunately this change will result in some user interaction when the machine reboots into Safe Mode which was something that I was trying to avoid to make the process as seamless as possible but integrity of the boot process is far more important.
Changes for v2.6 Build 3 - v2.6 Build 10
- Fixed an issue in the Manage System Restore Point Space tool in which clicking on a drive with no shadow storage space allocated to the drive may cause the program to crash. Thanks goes out to Peter for pointing this issue out to me.
- March 19, 2015 — Version 2.6 Build 8
- Included the ability to create a restore point at user login. You can have it create the restore point immediately when a user logs in or after a user set period of time.
Changes for v2.6 Build 2 - v2.6 Build 3
- Fixed a very big issue in which the restore point storage space was being resized by the program when it didn’t need to be. This caused systems to lose restore points. As far as bugs go, this one was nasty. I apologize deeply to the users of this program, this bug should have never occurred.
Changes for v2.6 Build 1 - v2.6 Build 2
- Added an additional setting to the Task Scheduler portion of the program to set the task of creating scheduled restore points up to run the task if the task is missed. Made some additional changes for the future Windows 10.
Changes for v2.5 Build 3 - v2.6 Build 1
- Fixed an issue in the automatic update checking function that executes after a user specified amount of time at program load in which it wasn’t obeying the concept of a minor update. Implemented a very important new function that may help in restoring your system to past restore points if attempting to restore in normal Windows fails; “Restore to Selected System Restore Point in Safe Mode”. All you have to do is select a restore point to restore to, press the button and then the program will set your system up to automatically boot into Safe Mode. Once your system comes up into Safe Mode the program will re-launch in Safe Mode, remove the setting to boot your system into Safe Mode, and then start the restoration process back to your pre-selected restore point. It’s a completely seamless operation. You simply select a restore point, press a button, and your system does all the work for you. Note, this feature is not available in Windows XP and won’t come to Windows XP due to the differences in Windows XP’s boot loader.
Changes for v2.5 Build 2 - v2.5 Build 3
- This is a minor update to Build 2 in which the Enable and Disable radio buttons on the Manage System Restore Storage Space windows has been removed due to the inability to determine if the space is reserved for actual System Restore usage. Windows doesn’t provide an API to determine this.
Changes for v2.5 Build 1 - v2.5 Build 2
- Changed some menu terms. Moved the Change Log menu item to the About menu. Implemented a fix in the code to (hopefully) fix a rare crash issue involving the Please Wait window.
Changes for v2.4 Build 26 - v2.5 Build 1
- First version 2.5 build. This new version no longer needs the DLL files they are now again being embedded in the main executable.
Changes for v2.4 Build 25 - v2.4 Build 26
- Windows XP support has been officially pulled from this program. The setup program will no longer allow an installation on Windows XP and the program, starting with this version, a notification stating that it’s highly recommended to upgrade to a newer version of Windows such as Windows 7 will be displayed every time the program runs. Microsoft has stopped Windows Update from working on Windows XP, even for those people who used the Registry hack to make it look like Windows POS Ready. Windows XP is no longer secure to use on the public Internet, there are far too many publically known exploits capable of being used against Windows XP. Please, for the sake of the larger Internet community, stop using Windows XP.
Changes for v2.4 Build 23 - v2.4 Build 25
- Preliminary support for the new Windows 10 has been added to the program. Specific parts of the user interface needed to be changed to follow the new terms that Windows 10 uses. The Change Log window’s text box is now read-only.
Changes for v2.4 Build 22 - v2.4 Build 23
- A webRequest exception is no longer being treated as a program crash, it’s now an error that is fully handled.
Changes for v2.4 Build 21 - v2.4 Build 22
- Included a possible fix to a crash when attempting to write to the restore point deletion log file.
Changes for v2.4 Build 19 - v2.4 Build 20
- Includes possible fix for crash in the checkForMyComputerRightClickOption() routine.
Changes for v2.4 Build 17 - v2.4 Build 19
- Fixed checking of DLL existence checks at application initialization. If not found, the program will download a program from my web site to auto-correct the issue and download missing DLLs.
Changes for v2.4 Build 16 - v2.4 Build 17
- This is a minor update to Build 16. Updated the program’s changelog window to pull the data from a new location on the web site. Rich Text is now being used instead of HTML.
Changes for v2.4 Build 15 - v2.4 Build 16
- This is a minor update to Build 15. Fixed a possible crash when double-clicking on the program’s clock tray icon.
Changes for v2.4 Build 14 - v2.4 Build 15
- Fixed a bug that prevented the program from functioning in Windows Safe Mode.
Changes for v2.4 Build 12 - v2.4 Build 14
- Fixed a bug on the Log File Viewer in which a crash could occur if the file was open by another program. Why that would occur, I have no idea, but the fix is in place.
Changes for 2.4 Build 11 - v2.4 Build 12
- Fixed multiple bugs in the new No UAC Launcher code on systems that have multiple administrator-type users. Due to limitations in the Windows operating system a set of tasks used to launch the program with no UAC prompt must be created for each user that’s part of the Administrators user group. To make sure that the Windows Task Scheduler isn’t littered with tasks for this program, all tasks will be created in a sub-folder of the root Task Scheduler folder. Fixed a bug in which the program would not prompt for a UAC prompt when running from a user that’s not part of the Administrator user group
Changes for v2.4 Build 9 - v2.4 Build 10
- Required DLLs are no longer being embedded in the executable. The updater program will download necessary DLLs as part of the updating process.
Changes for v2.4 Build 7 - v2.4 Build 8
- Removed the functionality to repair System Restore by enabling it on all system drives. I have restricted the functionality to just the system drive, the drive upon which the currently running instance of Windows is installed on (usually the C: drive in a large amount of cases). I have since removed the “Disable repair of System Restore on System drives” function from the UI because it essentially isn’t needed anymore.
Changes for v2.3 Build 13 - v2.3 Build 14
- Minor update. Fixed the viewing of the changelog.
Changes for v2.3 Build 12 - v2.3 Build 13
- Added a window to show the program’s official change log. Fixed an issue in which double-clicking on the tray icon for the program didn’t bring the program’s window back.
Changes for v2.3 Build 10 - v2.3 Build 12
- Fixed the Task Scheduler in which it wasn’t reading the days of the week on which a task is scheduled to run if the program was being run on a non-English Windows operating system. The program now loads the changelog from the web page and presents it to the user to tell them what changed.
Changes for v2.3 Build 9 - v2.3 Build 10
- The program now allows users to delete all restore points including the most recent System Restore Point. However, default settings for the program is setup so that it won’t allow you to do so. To enable this you must go to “Program Options/Settings” and then click on “Allow for deletion of all System Restore Points”.
Changes for 2.3 Build 8 - v2.3 Build 9
- Removed the Windows System Service checking code that was introduced with Build 8, seems that there is some issues that have cropped up in trying to fix machines that have been having issues with creating restore points. The code was put into the program to try and repair existing installations of Windows on which System Restore is broken. I am from now on not going to try to fix these machines and instead forward those users to the program that I linked to on Tweaking.com.
Changes for v2.3 Build 6 - v2.3 Build 7
- Included a possible fix for those people who were having an issue with a program crash while attempting to create a restore point. I was able to reproduce the crash in my Windows 8.1 Update 1 virtual machine installation by purposely breaking System Restore and I was able to write some code to fix it, at least one such possible breakage of System Restore that may cause this crash. This is a mandatory update for all users of this program.
Changes for v2.3 Build 5 - v2.3 Build 6
- This is a minor update for users of Build 5. Fixed some issues on the user interface in which the Restore Point Name didn’t go gray if a default restore point name was set to something and if the Restore Point Name textbox lost focus.
Changes for v2.3 Build 4 - v2.3 Build 5
- Added a possible fix for a crash that occurs on some machines when trying to create restore points. No code obfuscation is enabled on this version, Avast doesn’t seem to like it and considers it malware if the program’s executable is obfuscated so that it can’t be de-compiled.
Changes for v2.3 Build 3 - v2.3 Build 4
- Added the ability to turn off the program’s routine that checks for full shadow storage space. The option to turn it off is in the Program Options/Settings menu.
Changes for v2.3 Build 2 - v2.3 Build 3
- Minor change to the Disk Space Usage window in which the disk space usage bars have been re-arranged. In prior versions the “Shadow Storage Space Usage” was on the left and the “Total Disk Space Usage” was on the right. Now, they have been switched around. The “Total Disk Space Usage” was on the left and “Shadow Storage Space Usage” is on the right. I have done this because I felt that the “Total Disk Space Usage” is a bit more important to look at than the “Shadow Storage Space Usage”. Also, the “Total Disk Space Usage” bar was improperly sized for drives that don’t have any Shadow Storage assigned to it; this has been fixed.
Changes for v2.2 Build 14 - v2.3 Build 2
- Added the ability to set a default custom named restore point name. Made it so that you can turn off the notification that the program gives after deleting restore points and creating restore points. The message will still appear if something goes wrong though. Added code to detect general WMI errors and gives you an error message about where you can find help. Fixed a possible crash in which the restore point deletion log file may become locked. The method of opening the file has been changed to result in an exclusive lock over the log file. Changed the Windows API that’s used by the program to create restore points. Hopefully this should solve some issues that some people were having with creating restore points with this program.
Changes for v2.2 Build 13 - v2.2 Build 14
- Fixed the crash window in which the crash data wasn’t being loaded into the textbox. I commented out the code by mistake.
Changes for v2.2 Build 11 - v2.2 Build 13
- Reworked some of the System Service startup mode manipulation code. If you have the problem mentioned in Build 12′s changelog, you will have to download a new copy of the program and install it over the existing installation as versus getting the update through the program. Once you have the new version, launch Restore Point Creator as normal and the program will correct the problem for you and ask you to reboot your machine.
- Included code in the application initialization phase to check the startup mode of the Volume Shadow Copy System Service. If the System Service’s startup mode isn’t Manual the program is instructed to set the startup mode to Manual. Normally this shouldn’t ever have to be repaired but for whatever reason there have been a number of people who have had a Windows error code 0×81000202 which seem to point to the System Service being disabled. Code has been put into place to try and correct this.
Changes for v2.2 Build 10 - v2.2 Build 11
- Removed the crash reporting form from the program. It’s not working at all for whatever reason. I have instead put a link in the program to open to a web page where people can submit the crash data manually. This should be far more accurate in getting the data to me.
Changes for v2.2 Build 9 - v2.2 Build 10
- This is a minor update. Fixed an annoying cosmetic issue on the main window in which the Restore Point Name textbox didn’t go back to grayed-out box with the text “Type in a name for your custom-named System Restore Point…” in it in all situations when it lost focus. This should have been the case but for whatever reason it didn’t always do it in rare occasions.
Changes for v2.2 Build 7 - v2.2 Build 9
- Fixed a crash on the Disk Space Usage window that was caused by what I’m embarrassed to admit as a very dumb mistake in the code.
Changes for v2.2 Build 6 - v2.2 Build 7
- This is a minor update to build 6. Removed something from view that shouldn’t have been visible on Windows XP machines. Included a notification for Windows XP users that will appear after April 8th, 2014 notifying them that Microsoft has pulled official support for Windows XP. I have mentioned in the notification that the program will continue to function as intended on Windows XP past April 8th, 2014 but that I (the developer) strongly encourage the user to upgrade to (at the very least) Windows 7.
Changes for v2.2 Build 5 - v2.2 Build 6
- Fixed a possible crash on the Disk Space Usage window in which it doesn’t handle an Unauthorized Access Exception gracefully. Code has been put into place to catch the exception and skip the drive if this particular exception is raised.
Changes for v2.2 Build 4 - v2.2 Build 5
- This is a minor update to build 4. The AutoFix routine on the Drives with Full Restore Point Reserved Space window now gives more details as to what exactly it did. Is now displays the old size, the new size, and how much it increased the old size by. I have upgraded my development environment from Visual Studio Express 2012 to Visual Studio Express 2013.
Changes for v2.2 Build 3 - v2.2 Build 4
- This build makes it so that you don’t get a message about you already having the latest version during program startup. Normally it should have only informed you if you had a new version to download, not if you already had the latest version. Some minor tweaks to the code in how version strings are being parsed have also been implemented.
Changes for v2.1 Build 10 - v2.2 Build 3
- Minor improvement to the fix included in Build 2. After the fix is applied the program is now instructed to ask the user to reboot his/her computer.
Changes for v2.1 Build 9 - v2.1 Build 10
- Performance improvements have been done to the Manage System Restore Storage Space window in which on some machines the initialization phase of the window may take a long time to complete. A fix has been put into place by changing how and where the program is loading the data. Loading specific drive data has been given a Please Wait window so the user will now know that the program is working on something and hasn’t just locked up. This is the first mandatory update since Build 5.
Changes for v2.1 Build 8 - v2.1 Build 9
- This is a minor update to build 5, 6, and 8, this is not a mandatory update. Minor improvement to the Disk Space Usage window in which there is a “Manage” link for the Manage System Restore Storage Space window that will load and pre-select the drive for which you clicked the “Manage” link for.
Changes for v2.1 Build 6 - v2.1 Build 8
- This is a minor update to build 5 and 6, this is not a mandatory update. Fixed minor bug to the manual fix button’s routine on the Drives with Full Restore Point Reserved Space window in which it was making the Manage System Restore Storage Space window appear but not loading the data for the pre-selected drive. This has been fixed. Added a Please Wait window to the routine that loads the restore point list so that the user won’t think that the program just locked up.
Changes for v2.1 Build 5 - v2.1 Build 6
- This is a minor update to build 5, this is not a mandatory update. Minor improvements to the task scheduler. The “Save Max Age” routine has been added to the “Save Task” routine so you don’t have to press two buttons. In the future, if you want to change the “Max Age” setting you can do so by just clicking on the “Save Max Age” button. Added a “Set Bar Color” under Program Options on the main window. Changed “Program Options” to “Program Options/Settings” to be more clear about what it is.
Changes for v2.1 Build 3 - v2.1 Build 5
- Minor improvements to the “My Computer” right-click context menu entries in which now there are appropriate program icons associated with the entries instead of a blank icon (on Windows XP) or a UAC shield on Windows Vista or newer. Renamed the “Create Custom Named System Restore” menu entry to “Create Custom Named System Restore Point”. Added “Launch Restore Point Creator” as a new menu entry to launch Restore Point Creator from the “My Computer” right-click context menu.
Changes for v2.1 Build 2 - v2.1 Build 3
- Minor improvements have been made to the changes contained in Build 2. This a maintenance release, not a bug fix.
Changes for v2.0 Build 1 - v2.1 Build 1
- Added functionality to check reserved restore point disk space usage. If the percentage reaches 80% the program will automatically notify you about the issue and present to you ways to fix it. The program has an Auto Fix routine that’s programmed for easy fixing of the issue which automatically increases the size of the reserved disk space for restore points. Improved crash catching routine to provide better crash data. Fixed Disk Space Usage viewing in which the window’s width was too small. Added additional fixes for Windows 8 to the Windows Registry in which it was deleting restore points without the user’s permission. Fixed a tiny issue in which the Please Wait window that showed when using the jumplist or “My Computer” right-click context menu options did not have a proper icon. Fixed a possible situation in which malformed restore point data could cause the program to crash at startup while loading restore points.
Changes for v1.9 Build 4 - v2.0 Build 1
- First version 2.0 build! Along with the fixes that are in Version 1.9 Build 5 I have included a link to my Instructional Videos page on the product web site. There I will post instructional videos on how the program’s features work. So far I have two videos on the site. More will come as I have more suggestions for new instructional videos.
Changes for v1.9 Build 3 - v1.9 Build 4
- Fixed it so that the Please Wait window can’t be closed by using the window’s X button in the upper right-hand corner of the window. Only the thread that spawned the Please Wait window can close the window. Fixed a minor issue in which the button to create a custom-named restore point was re-enabled when it shouldn’t have been re-enabled. This is a minor update to build 3.
Changes for v1.9 Build 2 - v1.9 Build 3
- Added the ability to control the automatic updates interval. The default setting is every 7 days. You can configure it for 7 days, 14 days, or a custom value. Fixed a rather dumb bug in which when creating custom-named restore points from the jumplist tasks don’t work. I forgot one line of code… Me.Close() in the OK button’s Click event.
Changes for v1.8 Build 6 - v1.9 Build 2
- Fixed an issue in which the automatic update routine may not run. Automatic update checks are now triggered to be executed every seven days.
- November 30, 2013 — Version 1.9 Build 1
- Added the ability to keep only a specified amount of restore points on the system. This makes it so that if you have a setting a 12 restore points and after making a new restore point your system now have 13, the program will delete the oldest restore point to keep the amount of restore points on your system to a count of 12. Created a custom user input box for the creating of custom named restore points when using the Jump List Tasks or the “My Computer” right-click context menu. Added a trademark notice regarding Windows and Windows System Restore indicating that those terms are trademarked by Microsoft Corporation. I have to keep the lawyers away. Fixed crash issues with managing disk space usage by the restore point sub-system.
Changes for v1.8 Build 5 - v1.8 Build 6
- Fixed a very rare crash that could occur if the program was launched immediately after updating the program and the updater/patcher program was still running. This was fixed by searching for instances of updater/patcher program processes and killing it before attempting to delete it.
Changes for v1.8 Build 3 - v1.8 Build 5
- Fixed an issue with creating a restore point in which the program said that an error occured but in reality it didn’t. There was a typo in one of the lines of code that resulted in one of the API constants to have an incorrect internal error code number. Changed behavior of the function that creates restore points using the Jump List Tasks and the right-click options on “My Computer”, before a message box appeared when the task was completed. Now, a message box appears only if the task failed to create a restore point. With this change if you don’t get a message you can assume that things went alright and a restore point was created properly.
Changes for v1.8 Build 1 - v1.8 Build 3
- Fixed a possible issue in which the “every” variable for the “Every other X days” on the Task Scheduler window could be filled in with invalid data and thus could cause a program crash at a later date.
- Fixed the scheduled task EXE path repair routine. Before I was checking to see if the executable path for the scheduled task existed; now I simply change the scheduled task’s executable path regardless of whether or not the executable file exists if it doesn’t match the current process executable path.
- Fixed a crash upon loading restore points in which a System.ArgumentException can occur with an error message that states “An item with the same key has already been added”. This is because I store the encoded date of the restore point in the program’s memory in an array. Ordinarily this should never happen because each restore point should have a unique numerical ID assigned to it but I had one person say that the program crashed on him during load. Again, very strange because this should not ever be happening. There should not ever be overlapping restore point IDs.
Changes for v1.7 Build 3 - v1.8 Build 1
- Moved the About notice and link to the program’s product web site to be sub-items of About.
- Added a notice to ask users to donate. Yes, this program will always remain free to use with absolutely no limitations to the use of the program but still donations are welcome. If you click “No” to the message asking you to donate you will never see the program ask again unless of course you uninstall and reinstall the program.
- Added more checks throughout the program for file existence.
- Custom colors for the bar color chooser on the View Disk Space window is now saved in the program’s user preferences, before this was not the case.
- Added a bunch of new descriptive icons throughout the program.
- Made it so that the “Delete All Restore Points” option under the utilities menu is hidden if the system is Windows XP.
- Moved the “Close after Restore Point is created” checkbox to the Program Options menu.
- Added a message box to the Delete All Restore Points function asking you if you really want to do that.
- Moved “Delete All Restore Points” and “Delete Old Restore Points” to be sub-items of “Delete Restore Points” in the Utilities drop-down menu.
- Put a notice of sorts into the textbox to type in a name for a restore point to type something in that box.
- Increased the default width of the main window to make things fit better.
- Made it so that the program displays a message while creating and deleting restore points and will notify you that things are being done in the background and that message will not go away until the process is complete. This is much like how the Windows native Restore Point UI works. This window has a four minute timeout to close the window by itself but ordinarily this event shouldn’t occur.
- Put some code into the program to write a “last run” file for scheduled tasks, this way you can determine when the last time the task was run.
- Fixed a possible regression in which scheduled restore points weren’t being created.
- Imported many of the constants from the SRClient.DLL file for improved error checking during the creation of restore points. Now you should get more meaningful error messages other than a success or a failure.
- Added additional user privilege checking at startup to make sure that the program is running with system Administrator privileges/rights.
- Some more debugging of task scheduler creation code is needed, some users have reported the task scheduler crashing on Windows 7 which I have throughly tested and have come up with nothing conclusive. I have put crash detection code into place to try and narrow down where the problem may be.
- Changed the way that crashes are caught when unhandled crashes occur in the proogram, this should make the program catch more unknown crashes.
- Windows XP will continue to be supported past the date of April 8th, 2014 but in an extremely limited capability. Scheduled tasks under Windows XP will be completely disabled and any existing scheduled tasks will be automatically deleted by the program. This is because debugging scheduled tasks on Windows XP is proving to be far more difficult than I initially thought it would be. Much of the code that I use to access the Windows Scheduler is provided by a DLL that was written for Window Vista or newer and getting it to work on Windows XP without major hacks is difficult.
- Added the ability to change the update channel from beta to stable for future testing.
- Fixed an issue in the Restore Point deletion function in which a malformed date string could crash the program, this has been fixed by storing the raw date data from the restore point sub-system in the program’s memory and using that instead of parsing what’s in the list of restore points.
- Included some fixes in other areas of the program to help prevent crashes while attempting to parse invalid data.
- Fixed several possible Null Reference Exceptions that may occur with the log file writing functions, ordinarily this shouldn’t happen at all but in those very rare occasions (less than .01%) a fix as been put into place.
- Build 2: Updated the embedded Microsoft.Win32.TaskScheduler.dll that’s used by the program to access the Windows Scheduler.
Changes for v1.7 Build 2 - v1.7 Build 3
- Fixed a possible issue that may occur if Windows 8 is upgraded to Windows 8.1. There is a possibility that a Registry setting that the program sets on Windows 8/8.1 to fix System Restore to make it function like it did in past versions of Windows was undone during the upgrade of Windows 8 to 8.1. There is a check for this now in the program and if it detects the change was undone, the program re-applies it. Thank Microsoft for this issue.
Changes for v1.7 Build 1 - v1.7 Build 2
- Fixed a very embarrassing typo in the “System Restore Point Utilities” drop-down menu. “Deletes All Restore Points” should be “Delete All Restore Points”. Yeah, I’m embarrassed that that made it into the program. This is a minor update since no other thing was changed in the program.
Changes for v1.6 Build 10 - v1.7 Build 1
- First build of version 1.7. Added the ability to delete all restore points that exist on the system (except for the newest). Added logging to the restore point deletion functions, before only the functions that deleted old restore points had logging enabled in them; now all deletion functions have logging enabled in it.
Changes for v1.6 Build 9 - v1.6 Build 10
- Fixed an issue with the program’s embedded app manifest file.
Changes for v1.6 Build 8 - v1.6 Build 9
- Changed the way that the available disk space line is outputted on the Disk Space Usage window. The old display was confusing, the new display is similar to how the Restore Point Space is displayed.
Changes for v1.6 Build 7 - v1.6 Build 8
- Fixed an issue in which the program would crash upon execution of the program when attempting to run it under a Standard User on Windows Vista or newer.
Changes for v1.6 Build 6 - v1.6 Build 7
- Build 7 includes some more tweaks to the task creation code to set some task settings that may have contributed to tasks not running for some users.
Changes for v1.6 Build 4 - v1.6 Build 6
- Includes enhanced update checking logic to include better support for minor updates. Included a possible fix for scheduled tasks in which tasks weren’t running correctly. More testing will need to be done though. There is a possibility that on certain systems the task would not run because the user that the task was scheduled to run as didn’t have a password. A workaround has been put into place to make the task run as the SYSTEM user. Fixed a typo in the code that may have prevented scheduled tasks from running properly.
Changes for v1.6 Build 3 - v1.6 Build 4
- More user interface cleanups. About program message changed to include copyright line.
Changes for v1.6 Build 2 - v1.6 Build 3
- Fixed more bugs in the routine that checks EXE paths for the “My Computer” right-click context menu entries. Only one person had this issue that I know of.
Changes for v1.6 Build 1 - v1.6 Build 2
- Included windows service checking code into the Task Schedule part of this program to repair any possible Windows Task Scheduler Service issues. Some bugs have been been fixed in the program’s task scheduler in which the “Every” setting wasn’t being deleted when changing the task type from an “Every” to a Weekly type. Some bugs have been fixed in the invalid task fixer that’s run at startup of the program.
Changes for v1.5 Build 8 - v1.6 Build 1
- This new build features a new, cleaner, more streamlined, and completely redesigned user interface. The most important functions for working with Restore Points are now front and center in the program. These functions include refreshing the list of restore points on the program’s window, deleting individual restore points, and restoring to a specified restore point. The bottom half of the program has been completely cleaned up, it’s no longer there. Functions like log file options, viewing disk space usage, managing restore point space, and scheduling restore points have all been moved to a drop-down menu at the top of the window. Program checkboxes like “Enable My Computer Right-Click Option”, logging deletions of restore points, automatically checking for updates, and confirming the deletion of restore points while manually deleting them from the list have all been moved to another drop-down menu at the top of the program’s window. All of these changes were done in an effort to help clean up and streamline the user interface and only put what you need readily available to you.
Changes for v1.5 Build 7 - v1.5 Build 8
- Extra checks have been put into the program to check for invalid executable file paths in both the “My Computer” right-click context menu items and the scheduled tasks. An invalid executable file path could be caused by any number of things like moving the file or renaming the file and not updating the parts of the system that point to that moved or renamed file. Normally this should not happen but if the rare situation were to come up, the program has been instructed to repair the entries.
Changes for v1.5 Build 5 - v1.5 Build 7
- Added the ability to create restore points from the “My Computer” right-click context menu. This is enabled via a checkbox on the main window of the program. This is an option for you to enable if you so wish to do so. I don’t enable it by default.
Changes for v1.5 Build 4 - v1.5 Build 5
- Some code cleanups have been done as well that pertain to the changes that occurred in Build 5. Extra checks for data integrity have been included in the code that reads values from the Registry. Build 5 was more of a public beta than anything else, Build 6 wraps up the changes that happened in Build 5.
Changes for v1.5 Build 3 - v1.5 Build 4
- Added a confirmation question to the “Clean Restore Point Deletion Log” button. Fixed some window titles that were not very well worded (bad grammar).
Changes for v1.5 Build 1 - v1.5 Build 3
- Fixed a slight bug on the log file viewing window in which scrollbars didn’t appear when they should have. This was due to an inherent bug in the Microsoft .NET Rich Text Control itself and a workaround has been developed to get around the bug. Clarified some things regarding the impending April 8th, 2014 notice for Windows XP users.
Changes for v1.4 Build 6 - v1.5 Build 1
- This build includes a massive amount of fixes throughout the entire program for Windows XP. All of my personal machines (including the machine I develop this program on) run Windows 7. I hardly ever use Windows XP for I personally have left it behind simply because of the age of the operating system. Most if not all of the new features that I’ve been making available in the program are completely broken on Windows XP because quite simply Windows XP doesn’t support them. Only Windows Vista and newer support these features. Had I known that the program had such issues on Windows XP I would’ve fixed them long ago. Anyways, all features that require Windows Vista and newer have been disabled on Windows XP which really doesn’t leave much of the program active. The parts of the program that were completely broken were the Disk Space Usage window (that had a major crash), the Manage System Restore Point Space function (again, completely unsupported on Windows XP which resulted in a crash), and all functionality to delete old restore points have been disabled on Windows XP because Windows XP doesn’t support deleting of restore points.
Changes for v1.4 Build 5 - v1.4 Build 6
- Fixed deletions of old restore points by the scheduled tasks. The settings saved by the program weren’t getting carried over to the execution of the running task. This has been fixed by saving the required settings to the Windows Registry instead.
Changes for v1.4 Build 4 - v1.4 Build 5
- Fixed a major issue on startup of the program. There was a Null Reference Exception during the start of the program in the part of the program that determines the associated file handler for Text Files. I use that to determine what program to open the “Delete Old Restore Points Log File” with and to determine what icon to associate with the open “Delete Old Restore Points Log File” button. The code that I was using before didn’t take into account bad or corrupted file associations. Normally, this shouldn’t EVER happen but in those very rare conditions the program was unable to cope with the issue. I have put code into place in which it handles bad or corrupted file associations by just simply using standard Windows Notepad if the issue occurs. Thanks go out to Asen Anastassov for working with me to solve the issue.
Changes for v1.4 Build 1 - v1.4 Build 4
- Included a custom progress bar for use on the Disk Space Usage window that isn’t nearly as gaudy as the standard Windows progress bar is. You can also set the color of the progress bar to whatever color you want it to be and the program saves it as a preference. This is something that I’ve been wanting to do for quite awhile but haven’t been able to do so until now because I wanted to embed the DLL into the program’s EXE file instead of having to distribute another DLL and all of the baggage that comes with it. Embedded the Microsoft.Win32.TaskScheduler.dll into the program so the DLL is no longer required to be part of the distribution.
Changes for v1.3 Build 27 - v1.4 Build 1
- Added additional code in key areas of the program to help prevent Null Reference Exceptions. Hopefully these new additions will put a stop to most if not all known Null Reference Exceptions. First version 1.4 build.
Changes for v1.3 Build 26 - v1.3 Build 27
- Fixed some issues with the submission of crash data in which some of the data was being mangled. Made clear that pressing the button to “Show Crash Details” is also a way to submit crash details. Put in code to verify email address format so you can’t just put anything in the textbox, you must put a fully qualified email address. Changed the .NET Framework requirements from 4.0 Client Framework to full 4.0 Framework.
Changes for v1.3 Build 25 - v1.3 Build 26
- The built-in crash detection and reporting routine has been enhanced to ask for details regarding the bug. It asks for things like what you were doing when the bug/crash occurred and an email address for me to contact you at.
Changes for v1.3 Build 24 - v1.3 Build 25
- A built-in crash detection and reporting routine has been added to the program to help facilitate in the reporting of program bugs and crashes. If a program crash were to occur, the program has been instructed to submit the data to me via my web site.
Changes for v1.3 Build 22 - v1.3 Build 24
- Hot the heels of Build 23, another bug has been fixed on the Manage System Restore Storage Space window. There’s a point where I destroyed an object properly and after which I should have exited the sub-routine but I had stated “Exit For” but I should have stated “Exit Sub” instead. This bug came about from the process of closing memory leaks in the program. Fixed a typo in the installer that stated that it was installing version 1.2 where it should have said that it’s installing version 1.3.