Additional Note Regarding Beta Versions
This official change log document will not contain changes to Public Beta or Release Candidate versions until those changes are pushed to the public release channel.
Additional Note Regarding Change Logs Pushed to the Desktop Program
The changelog that's pushed to the program when you check for updates will include not only the changes for the most recent version but also any changes to past versions released after your current version. This is made possible by the fact that when the program pulls down the change log data it also sends the version number of your current installation. So if you have version 3.6 Build 10 and you update to 3.7 Build 3, the program will receive not only the changes for 3.7 Build 3 but also the changes for Build 1 and 2. These changes have been implemented to provide you, the user, far more information about changes and updates to the program. This however DOES NOT mean that I’m abandoning the program. Nothing could be further from the truth.
January 18, 2018 -- Version 6.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.
January 17, 2018 -- 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.
December 20, 2017 -- Version 6.8 Build 1
It's update time again and there's another batch of fixes and best of all, there's a performance improvement too.
- 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 may cause extraneous errors in the Application Event Log.
- Fixed a rare bug in the Disk Space Usage bar resizing routine that could cause the program to crash if an Object is Null resulting in a Null Reference Exception. Thanks goes out to LMP for reporting this issue to me.
- Fixed a typo where there was an uppercase letter but it should have been lowercase.
- Oh, and did I mention improved application startup performance by nearly 60%? Oh yes, I think I did but it's definitely worthy of mentioning that again.
Merry Christmas and Happy New Year to my users!
November 12, 2017 -- Version 6.7 Build 3
Some more minor updates...
- 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.
November 12, 2017 -- Version 6.7 Build 2
Added a question to ask the user if they want to convert the old application logs.
November 11, 2017 -- Version 6.7 Build 1
This is a bit of a small update but here goes...
- Updated the processUpdateXMLData() function to only get the value of the betaRCVersion XML node if the remote build type isn't set to "release".
- Included code in the listview sorter code to specifically handle the restore point ID column value.
- Included code in the listview sorter code to specifically handle the application event log ID column value.
- Fixed a potential crash that could occur during export of the old application event log data to the new log file if something goes wrong in the actual export function. This was due to trying to get a lock on the log file which already has a lock that was created elsewhere in the program.
- Replaced the code that assembles the crash data in the old event log code to use the function in the Functions.eventLogFunctions namespace.
- Removed the special function that just adds to an existing logObject, it was only being used in one place in the code.
October 30, 2017 -- Version 6.6 Build 2
Fixed a minor sorting issue with dates on the Event Log window in which a sorting error could occur if two log entries have the same exact second. This has been fixed by incorporating the microseconds into the sorting function.
October 30, 2017 -- Version 6.6 Build 1
Here comes another major update since the first of the month. I know that there was an update back on October 18th but that was an unplanned update that needed to be deployed fast to fix a critical issue. This update introduces a lot of changes and improvements. The changes are as follows...
- Brought back some of the old event log code for when the regular application log file cannot be opened for whatever reason. Better to write the data somewhere instead of nowhere.
- Rewrote the old Windows Event Log import/export function to do all file operations with a lock on the log file throughout the entire import/export operation.
- Fixed an issue that causes the Crash Handling Window to appear during updates on systems with Avast antivirus installed on them.
- Fixed a small bug in which the Clear Search Results button wasn't disabled after deleting log entries.
- Added functionality to select all items in the Event Log list by pressing Control-A.
- Added the Log Type to the exception logging function.
- Added functionality to be able to turn off the writing of the list of restore points to the application log when creating scheduled restore points.
- Came up with a better way to calculate the newest restore point ID number.
- Came up with a better way to make the font of the newest restore point entry in the list bold.
- Came up with a better way to determine if you selected the newest restore point and if so, disables the delete button.
- Added some extended debug logging.
- Added addition code to disable extended debug logging if the current build isn't a debug build.
- Included some improvements to the code that translates the Integer value that indicates the restore point type into something that's meaningful to humans.
- Renamed some variable names in the restorePointEntryItem Object and changed much of the code in the Delete Selected Restore Point routine to use far less variables.
- Changed the percentage at which System Restore Point Creator will warn you about full reserved space to 80%.
- Added logging to the internal vss.setShadowStorageSize() function.
- Made the "Reserved System Restore Space for System Drive" window a child of the main window.
- Added additional debug logging to the "Reserved System Restore Space for System Drive" AutoFix tool to find out where the program is hanging for some users.
- Included a way to get the version of a referenced DLL. This is used to include the version number of the Microsoft.Win32.TaskScheduler DLL.
- Reorded some of the text on the application's About box.
- Updated the copyright lines to extend it to the year 2019.
- Removed a legacy function in the WMI Namespace that's no longer needed by the program.
- Fixed a small bug in which the "Create Custom Named Restore Point" button was enabled after the Please Wait panel disappeared even if there was nothing type in the textbox.
- Fixed a small bug in which the "Create Custom Named Restore Point" button wasn't disabled when the textbox was empty.
- Optimized the code of the deleteEntryFromLog() function to no longer need a loop to delete the log entry from the log object.
- Included code to handle corrupted XML log files, thanks goes out to "A Malanga" for reporting this issue.
- Added handling of NotSupportedException to the addExtendedCrashData() function.
- Added logging of UnauthorizedAccessException and COMException crashes to the wmi.createRestorePoint() function for logging purposes.
- Fixed a minor bug that caused the Restore Point name textbox to have anything typed in it erased if you clicked inside the Restore Point name textbox. Thanks goes out to "Steve" for reporting this issue to me.
- Made some changes to the IF statement in the checkByFolderACLs() function to include implicit checks.
- Included minor tweaks to the code used in the deletion of selected log file entries.
- Added some additional code to the Event Log window to disable certain functions if the tool was launched without administrator privileges such as when launched from the Jump List tasks.
October 18, 2017 -- Version 6.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.
October 1, 2017 -- Version 6.5 Build 2
Fixed some last minute issues that came up after release. And to think that I debugged this for weeks.
October 1, 2017 -- Version 6.5 Build 1
It's been a month since a major new version has been released and this version is chock full of bug fixes and performance improvements. This is the first version of System Restore Point Creator to require version 4.6 of the Microsoft .NET Framework. And now for the long list of changes...
- Included code to get the parent process.
- Included code to elevate the priority if the program was auto-elevated by the Task Wrapper.
- Made it so that the update notification window is the top most window.
- Fixed an InvalidCastException that could be thrown due to an incurrent use of the "+" where a "&" should have been used.
- Changed the way that the application stores application log data from the Windows Event Log to its own log file format.
- Fixed the checkByFolderACLs() function, it was failing to check to see if the user group that the user belongs to was allowed access.
- Changed the order in which errors are logged. The error is logged first then the exception data.
- Added a check to see if the program is running as the SYSTEM user and if so the path access check function will always return True.
- Included a command line switch for debugging log file writing.
- Added some additional checks to the program update routine to check for the existence of an already existing new application binary file.
- Fixed a bug on that only occured on Windows 7 systems in which the areWeRunningAsATask() function would incorrectly return a False value.
- Fixed a bug in the runtime task setup in which there were double log entries.
- Added an additional update channel check if you are running a beta version.
- Added sorting to the Mount Volume Shadow Copy tool's listbox.
- Added the ability to save the sorting order for the Mount Shadow Copy tool.
- Added code to disable the Stable Update Channel if the current version is a Public Beta or Release Candidate version.
- Included better and cleaner OS version detection code.
- Included a call to the sort command in the getNewestSystemRestorePointID() function.
- Improved and optimized the code of the getRestorePointName() function by no longer requiring a For-Each loop.
- Added the inclusion of the error code for FileLoadException types along with some other fixes.
- Transitioned the program from using version 4.0 of the Microsoft .NET Framework to version 4.6.
- Removed a lot of low level API calls to determine if a user is part of the Administrator group and replaced it with much simpler native .NET API calls.
- Updated the embedded Microsoft.Win32.TaskScheduler library.
- Fixed a bug on the form that allows you to manually submit crash data that could cause a program crash if you didn't fill in the "What were you doing at the time of the program crash?" section.
- Fixed a bug on the Crash Submission Form that could cause a program crash if you didn't fill in the "What were you doing at the time of the program crash?" section.
- Removed a dependency on a third party DLL to work with ZIP files since Microsoft .NET Framework version 4.6 has support for working with ZIP files.
- Removed the last bits of code that supported Windows XP.
- Added code to detect Windows XP and tell the user that the program will now terminate.
- Converted the storage of the log entry date to a raw Data Object instead of converting to a UNIX timestamp. Existing log entries will continue to use the old UNIX timestamp but any new log entries will use the new format.
As stated before, development of the program will be considerably slowed down. I don't have nearly the same amount of time that I used to have to keep a heavy active development cycle like what I had before with a 15 day release cycle.
September 1, 2017 -- Version 6.4 Build 1
It's been a long time since a major new version has been released and this version is chock full of bug fixes and performance improvements. And now for the list of changes...
- 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.
As stated before, development of the program will be considerably slowed down. I don't have nearly the same amount of time that I used to have to keep a heavy active development cycle like what I had before with a 15 day release cycle. This new release is the first new major release since June 17th, 2017; that's almost two months ago.
August 10, 2017 -- Version 6.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.
July 14, 2017 -- Version 6.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.
July 6, 2017 -- Version 6.3 Build 2
Patched a number of possible Null Reference Exceptions in the WMI code. Thanks goes out to "jenn" for reporting this issue to me.
June 17, 2017 -- Version 6.3 Build 1
As of this point going further development of the program will be considerably slowed down. In the past new public release versions would be released every fifteen days with public beta versions being released in between, this is going to end. From this point on there may be as much as two months of time (or even more) between new release versions due to personal reasons. There's no big development house behind this program, no large team of developers; it's just me. One single guy who writes this program for donations. I give away this program for free but if you want to, you can donate. At no point do I tell you that you have to donate or even lock you out of parts of the program because you haven't donated. No, that's not my style. Anyways, I'm just here to tell you that development of the program will be slowed considerably from this point on due to personal reasons.
And now onto fixes that are included in this version.
- 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.
May 2, 2017 -- Version 6.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/ .
April 29, 2017 -- Version 6.2 Build 1
Well it's been a while since my last update. There were a couple of blocking issues that were in the pipeline that needed to be fixed first before this version came out. Lots of changes happened in the public beta branch and all but one of those changes made it into the release branch mainly because that one change needs more testing before it goes public. Anyways, onto the list of fixes in this version.
- 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.
March 31, 2017 -- Version 6.1 Build 1
Well it's been a while since my last update. I took a vacation during the first part of March so you can't blame me for not wanting to read programming code while on vacation. Anyways, the new version is available now with a whole lot of fixes.
- 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.
February 28, 2017 -- Version 6.0 Build 1
Because this month, February, is a 28 day month it kind of messes up the whole 15-day release cycle of the program. Oh well, such is life. Anyways, onto the number of fixes and improvements to the program.
- 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.
There will be no new release on March 15th, I will be far too busy during the first half of March to deal with the program's code. I will however make every effort to make time for any support requests. The Public Beta window will start again after March 15th.
February 13, 2017 -- Version 5.9 Build 1
Because this month, February, is a 28 day month it kind of messes up the whole 15-day release cycle of the program. Oh well, such is life. Anyways, onto the number of fixes and improvements to the program.
- 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.
February 1, 2017 -- Version 5.8 Build 3
This is an emergency update. Fixed an issue in which the update code may not run in specific circumstances. Thanks goes out to Charles Ray for helping me get to the bottom of the issue.
January 30, 2017 -- Version 5.8 Build 2
Minor changes were applied after the Build 1 compile.
January 30, 2017 -- Version 5.8 Build 1
This version includes a number of fixes and improvements to the program.
- Updated the HTTPHelper to version 1.245 which includes some changes to how it gets the system proxy configuration.
- Put in a fix for an issue in which the Reserved System Restore Space for System Drive window locks the program up. Thanks goes out to "nextgraf" for reporting this issue to me.
- Included some internal "behind the scenes" code changes.
- Moved the SSL image to the left side of the Update Message window.
- Included completely new update checking code based upon an XML document that's on my web site. Being that it's XML it's far easier to parse than the convoluted code that I had before. It requires far less code and is simpler to debug.
January 15, 2017 -- Version 5.7 Build 1
This version includes a number of fixes and improvements to the program.
- 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.
January 1, 2017 -- Version 5.6 Build 1
HAPPY NEW YEAR! HAPPY 2017!
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 may return error 1058. The work around sets the reserved space to 20 GBs, enables System Restore, and attempts to create the restore point again.
- Added handling of IO.FileLoadException to the function that initiates a system restore to a previous restore point.
- Included a new handler to log IO.FileLoadException since this exception type requires more logging specific to this exception type.
- Clarified some things on the Confirm Restore Point Deletion window.
- Put additional checks into the Manage System Restore Storage Space tool.
- Moved the code that's used to document how many restore points will be deleted by the "-keepxnumberofrestorepoints" command line argument to another part of the program's code.
- Added an additional call to the function that documents current restore points to the Application Event Log before the call of the function that deletes an X number of restore points to document how many system restore points the system had before and after the deletion routine.
- 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 better handling of HTTP Protocol Errors such as 500 and 404 errors.
- Updated HTTPHelper class to version 1.225.
- Implemented a fix to a program crash in the Task Scheduler tool that could occur if the Task Scheduler library returns an invalid task start time.
December 15, 2016 -- Version 5.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.
November 30, 2016 -- Version 5.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.
November 15, 2016 -- Version 5.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.
October 30, 2016 -- Version 5.2 Build 1
This version includes a number of fixes and improvements to the program.
- 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 centered in the screen when launching one of the Jumplist tasks.
October 14, 2016 -- Version 5.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.
September 14, 2016 -- Version 5.0 Build 2
Forgot one bit of code, specifically the bit of code that removes the version string from the title bar of the main window when you uncheck the item in the menu. Also moved that menu item to be a sub-item of Additional Options and Settings.
September 29, 2016 -- Version 5.0 Build 1
This version isn't nearly packed with changes as the last version but oh well, it still needed to be released. Yes, I know these changes are pretty boring compared to the last list of changes. I also know that this build is a bit early as well, one day early; oh well.
- Removed some unneeded legacy functions from the program's code.
- Removed a hack from the code that I wasn't particularly proud of; it was an ugly hack.
- Fixed some issues with the thread watchdog timers; added a Finally to the code construct.
- Moved the code for setting the size of a drive's Volume Shadow Copy storage space into a separate sub-routine.
- Fixed an issue in which the Confirm Restore Point Deletion window didn't appear in the center of the main window when it appeared.
- Removed the white background from the Confirm Restore Point Deletion dialog, it looked ugly as sin. I was trying to recreate the look of a dialog message on Windows 10 but in the end it looked like crap.
- Added the ability to show the version of the program in the title bar as well as the ability to disable it.
- Added the ability to save and reload the location of the Manually Submit Crash window.
- Added case insensitive handling of the configuration backup files to the restore routine.
- Changed some code to no longer rely on older deprecated Microsoft .NET APIs. If these changes cause issues in the future I can revert those commits.
- Fixed an issue in which clicking on the "Manage System Restore Space" label on the View Disk Space Usage tool would load the Manage System Restore Space tool but not load the previously saved location of the window on the screen.
- Optimized the subroutine used to resize the disk space usage colored bars when resizing the View Disk Space Usage tool.
September 15, 2016 -- Version 4.9 Build 2
Fixed a small bug where the String StartsWith() function caused a crash. Thanks goes out to Nigel Glover, Kurt Bremer, and "abakanli" for reporting this issue to me.
September 14, 2016 -- Version 4.8 Build 1
The update that was normally scheduled for September 1st, 2016 was pushed off to the 14th due to the update that I had to push out back in August on the 21st. So to make it so that users don't complain about too many updates, I pushed this update up by a whole half month. Of course this makes it so that many of these fixes get far more testing than in the past so maybe that's a good thing. Also, this new version is a day early since I'm going to be too busy to push this version out tomorrow (September 15th).
Anyways, onto the massive list of fixes by bullet point. I've decided to format the update notifications in bullet point format for easier reading instead of a huge wall of text.
- Made it so that the routine that loads the list of restore points from the system into the listbox on the main window waits 750 milliseconds so as to allow the main window to catch up and be shown to the user.
- The Please Wait window will no longer show on the taskbar.
- Put some additional checks into the code for deletion of temporary files after the update is complete.
- Some additional minor tweaks to the code.
- Introduced the multirun mode for the Task Wrapper on Windows Vista since Windows Vista does support it.
- Fixed an issue with the program asking if you really wanted to make the restore point.
- Fixed a long standing issue in which the Please Wait window that first appears when the program loads while loading the system restore points into the list appears in the upper-left corner of the screen. This was caused by the Please Wait window not being opened in the right program thread. The same issue existed when downloading updates, with the Disk Space Usage tool, the Official Contact Form, the manual crash submission form, and the crash submission form that is presented when the program encounters a crash.
- Fixed a possible hang on close of the program that could occur if the Check for Updates thread routine doesn't finish properly.
- Multiple bugs were fixed in the HTTPHelper class that the program uses for the checking and downloading updates. This included fixing a couple of memory/object leaks. Updated the HTTPHelper class to version 1.180.
- Fixed a possible NullReferenceException that may occur in the savePreferenceToRegistry() function on the main window.
- Fixed a typo in the code in the savePreferenceToRegistry() function in which it wasn't passing the right variable as the first argument to the Registry SetValue function.
- The application update process now doesn't download the compressed ZIP package from my web site to disk, it instead downloads the data into system RAM and holds it there temporarily. This makes it so that we don't write any unnecessary data to disk. For those who are geeks, I'm using a system RAM backed IO.MemoryStream() to hold the downloaded ZIP file in.
- Fixed an exception that could occur if the user.config file was corrupted in some way.
- Included several improvements to the code across the entire program that deals with scheduled tasks. This includes better validation of task settings.
- Put some safeguards into the Disk Space Usage tool to make sure that the window's handle has been created and if not, code is been put into force the window to create the handle before anything else happens.
- The Manage System Restore Storage Space tool wasn't loading the saved location, it was saving it but it wasn't loading it; this has been fixed.
- Included some cleanup code when closing out the Official Contact Form to delete any possible files created by the window such as when you want to attach the application logs.
- Optimized much of the code used to parse Boolean values from the application's System Registry key.
- Added some additional logging when updating the program.
- Fixed a possible crash on startup while attempting to delete the old updater.exe file that was used in the past to facilitate the updating of the program. This was because the program was trying to delete the file while the program was still running. This has been fixed by putting in a thread sleep command to wait for the program to close before attempting to delete it after killing the process.
- Included some minor code optimizations.
- Added some Alt hotkeys to the Yes and No buttons to the Update Notification window.
- Added a countdown of 30 seconds until the Yes button is pressed for you on the Update Notification window.
- Rewrote the process search and kill code to use Windows API calls instead of the WMI. This is in an effort to try to minimize the dependence on the WMI and use more traditional Windows API calls instead. Using more traditional Windows API calls is more efficient than using the WMI due to the latencies involved in creating a connection to the WMI and querying it.
- Optimized much of the String comparison code in the program and most importantly improved the performance of the CaseInsensitiveContains() function by no longer relying on slower RegEx-based code.
Oh and I finally have source control now.
August 21, 2016 -- Version 4.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.
The most important change in this new version is that I added some additional checks and safeguards as well as introduced logging to both the extraction routines and updating routines that occur when updating the application. You do have the ability to turn off the extended logging during updating but of course if something goes wrong it will be harder to figure out what went wrong.
Because of an issue that cropped up with the setting of the runtime tasks for multi-run mode in the last major release, the feature was removed from Build 2. That feature has been re-introduced in this Public Beta build but in a different way.
- Fixed a regression on the Mount Shadow Copy Tool that caused an Explorer window not to be opened upon mounting. This didn't cause an issue with mounting the actual shadow copy, just the opening of Explorer.
- Fixed an issue in the wmi.searchForProcessAndKillIt() function in which even with double-checking if a process ID exists, things can go wrong and cause an exception to occur. This has been fixed by simply wrapping the process kill() function with a Try-Catch block to trap a possible error when killing a process. Thanks goes out to Gerard Chantal for reporting this issue to me.
- Introduced some date verification code into the Task Scheduler tool when loading the tool to solve a possible crash issue.
- Changed the default option setting for Log Restore Point Deletions to enabled.
- Cleaned up some code for the Task Wrapper.
August 17, 2016 -- Version 4.7 Build 2
Despite the amount of testing that was done during the public beta phase, some issues came up.
- Issues with setting the MultiRun flag for existing runtime tasks had some issues, this has been corrected by removing that part of the program. This functionality may come back in the future. Thanks goes out to Slim McCoy and Jan van der Stegen for reporting this issue to me.
- Fixed an issue in which the vssadmin.exe command may be restricted by Group Policy Software Restrictions, included a workaround for this issue. Thanks goes out to Martin Hill for reporting this issue to me.
August 16, 2016 -- Version 4.7 Build 1
Lots of fixes and improvements are in this new version, probably more than any past version of this program to date. And yes I know, this version is late (it wasn't released on the 15th of the month); it needed more testing by users of the public beta branch which is what the public beta branch is meant for. Oh well, at least it was late by only one day; I can live with that.
You the user has even more control over how updates occur when subscribed to the beta update channel. You have two options. Test both beta AND release candidate versions or just release candidate versions. Obviously beta versions will be more unstable because that's where new code is tested, only until I see that the code is semi-stable does it move into the release candidate stage and then finally into general release. The default option is to test both beta and release candidate versions.
And now for the massive load of fixes and improvements to the program.
- Made some improvements to the update code, now one compressed ZIP file containing the required two files for an update is downloaded instead of two uncompressed files. This should help speed up the downloads of updates.
- Included additional version info that's written to the Application Event Log when updating.
- Included the ability to save the position of the main window on the screen.
- Changed some of the code checking to see if system restore is enabled on a system drive.
- Put log entry code into the function that checks if system restore is enabled on a system drive.
- Removed the option to disable HTTP Compression since that's no longer applicable to the update code.
- Included better handling of the PDB file while updating. Included better handling of situations in which files can't be replaced for whatever reason; this has been resolved by allowing for the schedule of file updating/replacement at system restart time.
- Updated embedded Microsoft.Win32.TaskScheduler library DLL to version 2.5.21.
- Fixed some minor warnings that pop up at compile time. Updated to allow for multiple instances of System Restore Point Creator to be run by a user. This is not supported on Windows Vista systems, only Windows 7 and newer.
- Included code to delete the legacy updater.exe file that may be left over after updating to a new version that no longer requires the use of the updater.exe program.
- Included some additional tweaks to the code that detects if a system has System Restore enabled.
- Included checks to see if system restore is enabled on a system when using the jumplist tasks to create restore points, this check was missing before.
- Added some additional checks if system restore is enabled during the creation of scheduled restore points, this check was missing before.
- Fixed bug when creating runtime tasks. Fixed an issue in which creating restore points on newly installed Windows installations was broken.
- Introduced more logging for scheduled restore point creation tasks. This can be disabled if you want to but the default option is enabled. Enabling this option will result in more data being logged to the Application Event Log for debugging and informational purposes.
- Fixed deletion of selected restore points in the list on the main window. Fixed an issue in which the confirmation asking if you want to delete a selected restore point got lost behind other windows.
- Added a "Fix Runtime Tasks" tool to the System Restore Point Utilities menu. Put some additional checks when executing the runtime tasks and a routine to automate the repair of runtime tasks if specific settings for them were changed.
- Changed the behavior of the routine to delete selected restore points to be less confusing in terms of messages at the end of the process.
- Got rid of the progress bar near the top of the window when deleting selected restore points.
- Fixed the Auto Fix function in which it didn't close the window after successfully performing the fix on the Reserved Space for System Drive tool which appears when the program detects when reserved system restore space is getting full.
- The program now remembers the location on the screen of more windows than just the main window. The initial window starting location will be at the top of the screen but after that the program will remember where you put it.
- Fixed a possible issue that prevented the system reboot command from executing, thanks goes out to hiro for reporting this issue.
Many thanks goes out to Willem Grooters for pointing out many of these issues and working with me to fix them.
July 30, 2016 -- Version 4.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.
July 16, 2016 -- Version 4.5 Build 2
Fixed placement of secure icon on update message dialog.
July 16, 2016 -- Version 4.5 Build 1
General public releases of System Restore Point Creator will now use a 15-day cycle. Every fifteen days a new version be scheduled to come out if and when needed. This is to help slow down on the release of new versions. This also means that more testing will be done to make sure that new additions, features, and bug fixes are stable before the program is released. More public beta testing will be done to catch bugs before they impact the general public.
And now onto the fixes and additions in this new version...
- Changed some things in the program's embedded manifest file to finally fix DPI scaling issues on Windows systems that have high DPI displays.
- Changed the caption of the menu item "Interface too small? Enable this option" to read "Interface too big? Enable this option".
- Changed much of the error handling that occurs with HTTP requests to use a centralized error handler to make HTTP error handling more consistent throughout the program.
- Fixed a major issue that could cause the program to crash with a fatal Stack Overflow Exception caused by a recursive call of the getFullOSVersionString() and writeCrashToEventLog() functions being called back-to-back in an infinite loop until the program crashes. Thanks goes out to Vladimir aka "bob2000" for having the time and patience to work with me in solving this issue, he provided me a lot of data including full memory dump files which allowed me to finally kill this bug. I couldn't have done it without him.
- Updated the HTTPHelper class to version 1.150.
- Added detection for System.IO.FileLoadException exceptions.
- Optimized some of the exception handling code with more efficient string search code.
- Renamed the "Restore Point Creator System Event Log" window to "Restore Point Creator Application Event Log".
- Added images to the buttons on the Restore Point Creator Application Event Log window.
- Renamed "System Event Log" to "Application Event Log" in the System Restore Point Utilities menu on the main window.
- Removed some old code that isn't needed anymore.
- Organized a lot of the internal code structured.
- Changed the way that dates are written in the exported log files.
- Dates are now being represented as UNIX timestamps for universal compatibility between different language editions of Windows.
- Added the ability to save the sorting preferences for the event log list just like on the main window for the restore point list.
- Fixed a possible crash issue on the Manage System Restore Storage Space window. Thanks goes out to Alan for reporting this issue to me.
- Fixed a possible crash that could occur while creating jumplist tasks. Thanks goes out to David for reporting this issue to me.
July 1, 2016 -- Version 4.4 Build 1
I have significantly slowed down on the updates and have reduced it to a twice a month update schedule. Beta version releases will still use a rapid release schedule so if you don't like constant updates, step back to the Stable Update Channel. The next scheduled update (if one is needed) will be on or around July 15th. Anyways, onto the update details...
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!!!
- Updated the HTTPHelper class to version 1.120.
- 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.
June 15, 2016 -- Version 4.3 Build 2
Removed some debug code that was left in the Shadow Copy Mount tool that was left in by mistake in the last build.
June 15, 2016 -- Version 4.3 Build 1
- Changed all of the functions that have to do with HTTP calls over to my custom-written HTTP wrapper to make things easier on me.
- Changed the way that the Mount Volume Shadow Copy tool loads the shadow copy instances that are on your system.
- Optimized much of the code that's used in the Disk Space Usage tool.
- Implemented checks on the Official Contact Form to check for duplicate attached files. Checksum verifications will now use SHA256 instead of the older (and now broken) SHA1 implementation, this change comes because I'm no longer tied to Windows XP.
June 8, 2016 -- Version 4.2 Build 3
Includes even more modifications to the Disk Space Usage tool to provide more information along with a better data layout which makes things much easier to read and understand. I guarantee you that you're going to like this new layout! A lot of work went into making this new layout possible.
June 8, 2016 -- Version 4.2 Build 2
Fixed a System.IO.IOException on the Disk Space Usage window if the device that the program is attempting to get the details of is not ready (whatever that means). Thanks goes out to David Fox for reporting this issue.
June 8, 2016 -- Version 4.2 Build 1
Ah the number 42; the answer to life, the universe, and everything. This version of System Restore Point Creator has had all references to Windows XP removed and will not function on Windows XP. If this version is run on Windows XP the program will offer to download the last version that supports Windows XP. It's quite liberating to no longer have to support that ancient version of Windows.
- Fixed a potential System.TypeInitializationException crash in the routine that adds the Windows quick launch tasks for the taskbar.
- Added the ability for the program to saved the column sorting order for restore points, this was a suggested by Andrey Chernov.
- Fixed some user input validation issues on the Task Scheduler window for the Max Age setting, thanks goes out to "Paul" for reporting this issue.
- Improved much of the code that handles HTTP requests to better handle errors.
- Fixed a possible issue in which the program can't find the shutdown.exe command line tool to trigger a system reboot due to incorrect environmental paths, the fix includes a full path reference to the shutdown.exe tool located in Windows\System32. Thanks goes out to Ehoud Gluska for reporting this issue to me.
- The Manage System Restore Storage Space tool has been redone to only control the space assigned to the System Drive since for consumer versions of Windows that's all that counts. Redesigned the Disk Space Usage tool with a complete code rewrite.
May 29, 2016 -- Version 4.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.
May 27, 2016 -- Version 4.1 Build 4
- Implemented some changes to the code on the Disk Space Usage window to hopefully solve a System.InvalidOperationException when loading the window. This crash seems to be something that doesn't happen to everyone so tracking down why this issue is happening is frustrating to say the least.
- Put some code into the Event Log Search Tool to prevent you from searching when you haven't yet put any search terms into the search box.
- Implemented the ability for the Event Log Search Tool to be repopulated with your past search terms.
- Added the ability to add file attachments to the Official Contact Form that you can access by going to About and then Contact the Developer. This makes it easy to send files such as screen shots and text files to me. All you have to do is add some files to the list, press the Submit Message button, and the program ZIPs the files and sends them on their way.
May 16, 2016 -- Version 4.1 Build 3
This is a minor update. Implemented a fix for the getFullOSVersionString() function in which garbled data may be returned on systems running non-English operating systems. This is especially so for Russian versions of Windows. The fix includes hard coded version name strings for the various versions of Windows.
May 16, 2016 -- Version 4.1 Build 2
Minor update to remove some unnecessary code after Build 1 compile.
May 16, 2016 -- Version 4.1 Build 1
I'm going to go back to my promise that there will be less updates and when I do update the program, those updates be farther apart in time to allow for more fixes to be included and more testing to be done. Starting with this new version, it's chock full of fixes and overall improvements.
- Fixed a small bug on the main window in which the Restore Point Name text box wasn't being cleared after the creation of a custom-named restore point.
- Included more wording on the Official Contact Form and the Crash Data Submission form that email addresses will be kept STRICTLY confidential and that they will NOT be included in a mailing list, sold to third-parties, or anything of the like. I have had some submissions in the past that resulted in reply email addresses that don't exist. If I don't get a valid email address, how can I contact you?
- The Event Log search tool now tells you if you if it didn't find any results and how many results it found, it also scrolls to the top of the event log list after the search is complete.
- Fixed the Event Log Search Tool in which the text box to enter in a search term is automatically selected when the window appears.
- Set the default button on the message box asking if you want to submit a crash report in the Event Log Viewer to be No.
- Changing the bar color on the Disk Space Usage tool no longer triggers a data refresh, only the color of the bars change.
- Made it so that the "Manage System Restore Space" blue link only shows up for the system drive on the Disk Space Usage tool.
- Removed a bit of debug code in the Set Progress Bar Color routine in which a message box appeared out of nowhere.
- Made it so that when manually submitting crash reports from the Event Log Viewer the program will no longer close after a successful data submission.
- Fixed a bug on the Task Scheduler window in which the Every setting would always be set to 2 even if you input a valid input.
- The Task Scheduler now uses the Recurrence option in the Windows Task Scheduler as versus using internal program logic to determine if a scheduled restore point is needed.
- Any scheduled restore point tasks will be upgraded as required the first time you launch the program.
- Fixed scheduled restore points in situations where the Every setting was set and that it wasn't creating restore points as required.
- Fixed the checking of the "days" check boxes when loading the Task Scheduler window and the schedule type is a weekly type. From this point on the Windows XP notice will be a permanent thing, you will no longer be able to disable the window from coming back every time you launch the program.
- A lot of fixes for Windows XP on the main window as well as the Disk Space Usage tool.
- Included documentation for the various command line arguments that the program accepts.
- Added an additional command line argument for the "-createrestorepoint" argument.
- Included a handler for an System.OutOfMemoryException exception.
WHEW! That's a lot of stuff!
May 10, 2016 -- Version 4.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.
Version 4.0 represents a major milestone for Restore Point Creator, I can finally say that I'm pleased with the direction that the program is taking and how well it's matured since the very first release back in January of 2013. When I released it way back then I meant it as a simple utility but lately it's become something much larger than that, an indispensable tool used by many people around the world. I didn't at all think it would become what it is today. 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.
April 30, 2016 -- Version 3.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.
April 29, 2016 -- Version 3.9 Build 2
Fixed crash issue on Create a Restore Point at Logon window. Thanks goes out to David Sachs, Nuno Filipe Rego, and "Brian" for reporting this issue to me.
April 29, 2016 -- Version 3.9 Build 1
Included some additional registry tweaks to help improve the performance of system restore on Windows 8.x and Windows 10 systems. Fixed creating restore points on Windows XP. This has been a long standing bug that's never been reported to me. I'm wondering if I should just pull Windows XP support from this program altogether since based upon the fact that nobody reported this issue to me there must be no one running this program on Windows XP. Fixed Event Log Viewer on Windows XP in which the event log types weren't having any icons associated it. Changed the wording in the textbox at the top of the main window where you type in a name for your restore point. A Registry setting is set by the program upon setting the system up for Safe Mode boot and when the system comes up into Safe Mode the Safe Mode boot flag is deleted along with the Registry value telling the program that it needs to remove the Safe Mode boot flag. Hopefully this will make sure that the user never gets stuck in a Safe Mode without the ability to get out of it. But if you somehow find yourself stuck in Safe Mode, open Restore Point Creator, click on Program Options/Settings and click "Stuck in Safe Mode? Remove Safe Mode Boot Option". Included a handler for ManagementException. Made it so that when pulling down the beta change log it acts more like the way it pulls down the changes for the regular versions. Did some work on the server response parsing code used to parse the response from the web server when checking for updates. Fixed some crash issues on the Mount Volume Shadow Copy window.
April 20, 2016 -- Version 3.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.
April 17, 2016 -- Version 3.8 Build 1
Users will have to download a new installation of this program to update it manually due to an issue that cropped up in the last version. I apologize for this issue, the issue is a result of a rather dumb mistake that occurred when I was hurrying out a fix in Version 3.7 Build 4. New testing and code validation procedures will be implemented from this point on so as to help make sure that a mistake such as this will never occur again. I messed up pretty badly with this mistake. The issue will result in a full program crash. Fixed a rare issue in the showDonationNotice() function in which a NullReferenceException could occur. Thanks goes out to "Richard" for reporting this issue. Fixed another rare issue in which a ObjectDisposedException could occur in the Please Wait window if just the right circumstances come up to trigger it. Again, this is a very rare issue. Thanks goes out to Beanz Elang for reporting this issue. Fixed an issue when checking for updates.
April 15, 2016 -- Version 3.7 Build 4
Included a search tool in the Event Log Viewer that you can use to search the entries for keywords in the event log text. You can also use more powerful Regular Expressions to search but that's geared towards power users. Changed the way that the program contacts my server to check for updates. Full and complete changelogs are now out of beta. Even more information is being provided to you, the user, so that you know exactly what each update does and each past update did since the version you currently have installed. The disabling of automatic updates doesn't occur if you say No to a minor update. Minor updates were not being handled properly in the update notification window.
April 11, 2016 -- Version 3.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.
March 28, 2016 -- Version 3.6 Build 10
Fixed the crash data submission form in which it wasn't working. This was due to a configuration change on the server end of things, not the program itself. This has been fixed by implementing a workaround in the program. Fixed the Configuration Backup tool that prevented the internal settings from being saved properly. Configuration backups are now being written to an encoded file type with a checksum as part of the file. This is to help ensure that nobody can tamper with the data in the backup file. Windows XP users will continue to use the original INI file format while Windows Vista (and newer) users will have the option to use the new data encoded file type. Many of the options and settings in the Program Options/Settings menu have been moved to a sub-item of Program Options/Settings called "Additional Options and Settings". This is to help split up the menu into two parts since the Program Options/Settings menu has so many options in it. This was requested by André Derry. Removed the limitations of the "Interface too small? Enable this option" option to appear on all versions of Windows, not just Windows 8.x and Windows 10. When viewing an Event Log and you view a log entry that contains Exception data, the program will ask you if you want to submit the Exception data. This behavior can be turned off if you so wish by unchecking the checkbox at the bottom of the window titled "Ask me if I want to submit a crash report if I view an Event Log Entry that contains Exception data".
March 21, 2016 -- Version 3.6 Build 9
From this point forward all updates are optional; the program will ask you if you want to upgrade to the newest version. However, if you have any issues the first thing that I'm going to do is ask you to upgrade to the latest supported version before you ask for support. The new version will no longer be forced upon you. To those users who I've offended with this forced update policy, I apologize. However, you can make the program perform like it did before this change (it tells you an update is available and just does it) by going to Program Options/Settings and uncheck "Ask Before Upgrading/Updating". This is to give the user the option to either have it ask every time or to just go ahead and install the update. Several people have slammed me for acting like Microsoft with their Windows 10 update strategy. These changes that I've made should make me... uh... slightly less despised than Microsoft.
March 19, 2016 -- Version 3.6 Build 8
At the request of a user, whenever a completely new version is released the program will no longer force you to update to the newest version. It will now ask you if you want to upgrade to the newest version and if you say No the program will automatically disable the automatic check for updates routine. Restoring a configuration backup will cause the program to close and reload so that the new settings are loaded by the program.
March 17, 2016 -- Version 3.6 Build 7
This is a minor update. The Shadow Copy Mounting tool no longer mounts shadow copy instances to a hardcoded folder, the tool has been instructed to mount to a folder based upon where the currently running version of Windows is installed on. Before it was hardcoded to mount to C:\shadowcopy, this may cause issues with dual-boot setups in which the boot drive may not necessarily be the C Drive.
March 15, 2016 -- Version 3.6 Build 6
Improvements have been done to several HTTP web related functions to simplify code. Checking for updates sometimes won't trigger the creation of a Please Wait window, this has been corrected. Removed some unnecessary HTTP calls in some functions, specifically the update checking routine that was pulling down the changelog even if there wasn't a new version to download.
March 14, 2016 -- Version 3.6 Build 5
Made it so that disk space usage bars on the Show Disk Space Usage window are made red if the usage is higher than 90%. HTTP Web Proxy support has been implemented. I have been meaning to implement support for HTTP Proxies but never got around to it until now.
March 10, 2016 -- Version 3.6 Build 4
Build 3 was an internal test build so I'm skipping to Build 4. Fixed Event Log Viewer on Windows XP in which there would be an error message that reads "The event log 'System Restore Point Creator' on computer '.' does not exist.". Improved performance of the Change Log window in which it now loads the change log far faster than in the past. Implemented SSL for many of the things that the program does including downloading new binaries, checking for updates, and submitting crash and contact form data. SSL is disabled on Windows XP since Windows XP lacks support for SSL SNI. You can turn off SSL by going to Program Options/Settings and uncheck "Use SSL". Improved upon the checking of task folders. Included a check for the existance of the task folder before attempting to create tasks.
March 4, 2016 -- Version 3.6 Build 2
Fixed Microsoft.Win32.TaskScheduler.NotSupportedPriorToException on the Create Restore Point at User Logon form. Thanks goes out to "mwattskan" for reporting this issue. Added a contact form to the program so you don't have to use the form on the web site to send an email to me. Put in a handler for a System.ComponentModel.Win32Exception in the launchURLInWebBrowser() function.
March 2, 2016 -- Version 3.6 Build 1
After several public betas and release candidates and weeks of testing, I present to you the first version 3.6 build. This new version includes A LOAD of fixes. Put in some code to handle XML issues with scheduled tasks. Inserted a handler for System.UnauthorizedAccessException crashes. Improved backup and restore to include more data including window size preferences. Updated packaged Microsoft.Win32.TaskScheduler library from version 2.0.0 to 2.5.14. Put in a confirmation question upon closing the Task Scheduler window asking if you want to close the window if you have changed any task setting and have yet to save them. Some code optimizations have been done and some legacy code was removed. Fixed some issues with window placements. Optimized many of the WMI queries used to retrieve system information. Removed some unnecessary threads from the main window load routine which resulted in improved main window loading times. Fixed the Event Log Viewer on Windows XP in which it didn't work at all. Improved performance of the Event Log Viewer. Fixed an issue in the Event Log Viewer in which the wrong icon was being associated with an Error-type message. Added a Shadow Copy Mounting tool. Added a tool to set the Wake Timers setting for Windows Power Plans back to the default Disabled setting. This function was requested by Mark Asap. Fixed a possible Null Reference Exception that may occur if threads don't sync properly. Fixed user input validation issues on the Delete Old System Restore Points and Check for Updates interval setting dialog. Apparently the Microsoft .NET IsNumeric() check isn't catching all user input issues. Wrote a replacement function that contains a Regular Expression-based check for the default .NET provided IsNumeric() function for user input validation. Put in possible workaround on the Task Scheduler window for System.IO.FileNotFoundException. Fixed contact URL in program, two extra spaces somehow were put into the URL making it an invalid URL. Put in a handler for System.OverflowException on the "Delete Old System Restore Points", "Keep X Amount of Restore Points", and "Check for Updates Every" dialogs.
February 13, 2016 -- Version 3.5 Build 9
Includes a minor update and fix to the configuration restore tool.
February 13, 2016 -- Version 3.5 Build 8
Included fixes for possible mangled HTTP POST data. Included better handling of UNIX line feeds in returned HTTP data. Included a configuration backup and restore tool to the program, this feature was requested by John Terdik.
February 2, 2016 -- Version 3.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.
February 1, 2016 -- Version 3.5 Build 6
More fixes for the Please Wait window. Some minor user interface tweaks. Removed the checking of Windows Power Plan settings from the program's initialization code to cut down on the annoyance when installing a clean install of System Restore Point Creator. Added a new utility called "Check Windows Power Plan Settings" to the Sysem Restore Point Utilities menu; this checks to see if your Windows Active Power Plan is set up properly for waking from sleep made to create scheduled restore points. However, this is normally not needed but if you find that your restore points aren't being created while your computer is asleep, open the program and run that utility. When you create the scheduled task to create restore points the settings are checked but if for whatever reason the power plan settings need to be checked, the utility is there for you to use. Removed some legacy code that's no longer needed.
January 27, 2016 -- Version 3.5 Build 5
More fixes for the Please Wait window. Included better handling of an exception on the Event Log window instead of using an exception handler.
January 23, 2016 -- Version 3.5 Build 4
This is a minor update. Build 4 replaces Build 3. Included the addition of an icon to the uninstall info. Fixed a minor issue in which the Please Wait window didn't appear when pressing the F5 key on the Event Log window.
January 14, 2016 -- Version 3.5 Build 2
This is a minor update. Changed the program's icon.
January 13, 2016 -- Version 3.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.
January 6, 2016 -- Version 3.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.
January 5, 2016 -- Version 3.4 Build 15
The program has been instructed to update the uninstall info in the system Registry when an update has been finished and the program has been run for the first time after the update has been applied. The info that gets updated is the name, version, and installation date. This was a requested feature by an end user.
December 28, 2015 -- Version 3.4 Build 12
2015 Holiday Edition. Fixed some more issues with the Please Wait window.
December 21, 2015 -- Version 3.4 Build 10
Fixed a major crash issue in which going from the View Disk Space Usage window to the Manage System Restore Storage Space caused the program to crash. This was due to an issue with font objects. Fixed an issue in which the Please Wait window didn't close when using the View Disk Space Usage tool. Added a Please Wait window to tell you that the program is downloading an update.
December 21, 2015 -- Version 3.4 Build 9
Includes a minor fix to the Please Wait window in which it doesn't stay on top of other windows in the program. This was due to changes in Build 8.
December 21, 2015 -- Version 3.4 Build 8
Finally put in a fix to (hopefully) solve crash issues with the Please Wait window. It required a significant amount of refactoring and changes to the code used to load the Please Wait window.
December 14, 2015 -- Version 3.4 Build 6
Changed the default behavior of the program when first installing the program to ask the user if he/she wants the program to be able to properly set the system's Active Power Plan up for waking the computer up if and when a scheduled restore point is needed to be created if the system is asleep. Before the default behavior was to simply assume yes, now the program doesn't assume yes and asks the user instead. There is a recommended setting mentioned in the text of the prompt. PLEASE NOTE! Upon first launching this new version, you will be asked if you want to allow System Restore Point Creator to check your power plans if you are running an older version.
December 11, 2015 -- Version 3.4 Build 5
Fixed a data parsing bug on the Manage System Restore Point Storage Space window in which an invalid user input could cause the program to crash. This was caused by an error in input validation before converting the input into a Double. Thanks goes out to "Sandro" for reporting this issue.
December 5, 2015 -- Version 3.4 Build 3
Instructed the program to execute the VSSAdmin executable with a full path to it in the Windows System32 folder as versus relying on the common environmental path variable. Thanks goes out to Walter Finnin for pointing this issue out for me.
November 29, 2015 -- Version 3.4 Build 2
Combined the program crash notification window and the automatic crash data submission form into one window for simplicity.
November 21, 2015 -- Version 3.4 Build 1
First version 3.4 build. Changed the way that the program tells you what kind of notification type you will receive. Put some extra checks into the loadPreferences() routine for Null Objects in the main window's initialization phase. Ordinarily the checks I have had in the loadPreferences() routine for some time now would have been sufficient but I have received one bug report from a rather rude person so I have put additional checks in.
October 29, 2015 -- Version 3.3 Build 8
Fixed a rare crash in the Event Log Viewer window in which resizing the window under very specific circumstances can cause the program to crash. Thanks goes out to Bill Heinzinger for reporting this issue.
October 25, 2015 -- Version 3.3 Build 7
Fixed a rare System.ObjectDisposedException issue when loading the program. Thanks goes out to William Broge for reporting this issue.
October 20, 2015 -- Version 3.3 Build 6
Implemented a workaround for a rare issue in which the closing of the Please Wait window causes the program to crash when creating Restore Points. Thanks goes out to Mario Rossi for reporting this issue.
October 10, 2015 -- Version 3.3 Build 5
Fixed resizing of the Event Log Viewer in which the table pane moved with the window resize when it shouldn't have been. Fixed a typo on the main window. URLs are now being launched in system's default web browser. This will probably be the last build for quite awhile, the program is quite stable at the moment so... Why mess with a good thing?
September 29, 2015 -- Version 3.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.
September 21, 2015 -- Version 3.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 running is a debug build.
September 13, 2015 -- Version 3.3 Build 2
Fixed an issue in which the event log window wasn't saving the size preferences properly. Includes some code cleanups.
September 7, 2015 -- Version 3.3 Build 1
First version 3.3 build. Fixed a regression in which setting the system up for Safe Mode boot was broken.
September 6, 2015 -- Version 3.2 Build 20
This is a minor update. Improved upon the resizing of objects on the Event Log Viewer.
August 31, 2015 -- Version 3.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". A Registry import file can be found at http://www.toms-world.org/dontcheckpowerplan . Included the ability to tell the program to silently modify the Windows Active Power Plan and not tell you anything (it will still be logged in the Windows Event Log), 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.
August 26, 2015 -- Version 3.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.
August 26, 2015 -- Version 3.2 Build 15
Fixed a Null Reference Exception in the checkIfActivePowerPlanIsSetProperlyForWakingFromSleep() function on those machines that had a missing Registry key. Why some machines were missing this particular (and important) Registry key and others weren't, I have no idea. I assumed that because this particular Registry key was important for even Windows to have, it would exist on every machine.
August 25, 2015 -- Version 3.2 Build 14
Included code to check Windows Power Plan settings to make sure that the system is setup properly to wake from Sleep Mode. Again, 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.
August 24, 2015 -- Version 3.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.
August 23, 2015 -- Version 3.2 Build 12
Fixed an issue in the getNewestSystemRestorePointID() function in which an ArgumentOutOfRangeException may occur. Thanks goes out to Crystal Smith for reporting this issue. Fixed an issue in the createRestorePoint() function in which an UnauthorizedAccessException may occur. The program has been instructed not to specifically crash but to tell the user that system permission settings seem to not allow system restore points to be created on the system. Thanks goes out to "Peter" for for reporting this issue.
August 22, 2015 -- Version 3.2 Build 11
Moved the program load time update checking routine to a separate thread. This should help decrease the amount of time the program takes to load when checking for an update at program load.
August 17, 2015 -- Version 3.2 Build 10
Includes a fix to the deleteSystemRestorePoint() function in which a crash may occur if there's a negative index. This should usually never occur but a fix is in place for it. Thanks goes out to Charles Billow for reporting this issue to me.
August 15, 2015 -- Version 3.2 Build 9
Includes some fixes for the inablity to create scheduled tasks on some systems.
July 31, 2015 -- Version 3.2 Build 6
Minor update to build 5. Updated copyright line in program to extend it to the year 2017.
July 19, 2015 -- Version 3.2 Build 5
The app's manifest file has been updated to include the GUID for Windows 10.
July 18, 2015 -- Version 3.2 Build 4
Final preparations are in place for Windows 10 support. The Enable "My Computer" Right-Click Option in Program Options/Settings has been removed for Windows 10. It is HIGHLY recommended that if you plan on upgrading to Windows 10 that you launch System Restore Point Creator and disable this in the program BEFORE you upgrade to Windows 10. Apparently Microsoft doesn't want anyone adding anything to the "My Computer" context menu. Don't ask me, I don't have a clue why; you'd have to ask Microsoft about that one.
July 9, 2015 -- Version 3.2 Build 3
This is a minor update. Unified the crash data that's written to the system event log so that it matches the format that's displayed in the primary crash window for handled exceptions.
July 7, 2015 -- Version 3.2 Build 2
This is a minor update. Changed the title text for the "Set Custom Restore Point Name for Scheduled Restore Points" window to "Set Custom Name for Scheduled Restore Points", now it should fit within the size of the window's title bar. Fixed a tiny bug in the "Set Custom Name for Scheduled Restore Points" window in which pressing the Enter key on the keyboard when in the textbox didn't do anything, it should have triggered a click of the OK button.
July 7, 2015 -- Version 3.2 Build 1
This new version includes tons of new bug fixes and improvements. A lot more system information is being included in the crash data that's sent to me. The new additional information is your operating system, how much RAM you have, your CPU type, and how many cores your CPU has. Fixed reloading of change log data on the change log window. Inserted code to silently handle UnauthorizedAccessException and ManagementException issues in the updateSystemRestorePointsList() function. Placed code in the startup routine to detect if System Restore is enabled on the system. Fixed a bug in which the deletion of updater.exe could cause a rare crash if the file is still in use. Ordinarily this shouldn't happen since the program actively seeks out and kills currently running processes with updater.exe as the parent executable. If this should occur, simply rebooting your computer will fix the issue. This is being treated silently with an entry in the Windows Event Log if this issue occurs. Reported by Andy Stadtlander. Includes some more SHA1 verification. Put code in to silently handle an error in the restoreToSystemRestorePoint() function. Includes more registry checks for event log related things.
June 21, 2015 -- Version 3.1 Build 7
Includes some more improvements and code optimizations to the Event Log Viewer code. Includes the time used to process the event log data. Includes some validations to the download code used to download updates in the form of SHA1 checks, this should help detect and prevent corrupted downloads and updates.
June 21, 2015 -- Version 3.1 Build 6
Improved the speed of loading and processing of data in Event Log Viewer by a significant amount on systems that have lots of logs in their event logs. What took a couple of seconds to do before now happens in less than a second.
June 17, 2015 -- Version 3.1 Build 5
This is a minor update. Included a field on the crash reporting window to ask the user what they were doing at the time of the crash.
June 16, 2015 -- Version 3.1 Build 4
This is a minor update. Removed some unnecessary GUI elements from the main window since they're no longer needed. When closing the automatic crash submission window and the data hasn't been sent yet, the program asks if you want to close the window.
June 16, 2015 -- Version 3.1 Build 3
This is a minor update. Included an automated crash reporter.
June 16, 2015 -- Version 3.1 Build 2
Removed the stand-alone log file used to log deletion of restore points in the program and moved all logging to the Windows System Event Log. Added a way to show the Event Log and only the event log by executing the program with "-eventlog" as a command line argument. As part of the startup routine the program has been instructed to create a shortcut to the program's event log viewer in the user's Start Menu location for the program. Added a Jump List item for the program's event log. Fixed a File Not Found exception in the checkScheduledTaskEXEPaths() function. Ordinarily this should never happen to begin with. Rolled back to older version of embedded Microsoft.Win32.TaskScheduler.dll. Hopefully it will solve some corrupted task error that a small number of users are reporting. Put in work around for an issue setting drive space in the setShadowStorageSize() function. Put additional checks in the doesRunTimeTaskExist() for executable path checks. Fixed Null Reference Exception on startup. Much thanks goes out to Derek Iapetus for getting back to me regarding this issue and giving me the information I needed to finally kill this bug.
June 12, 2015 -- Version 3.0 Build 2
This new version includes tons of new bug fixes and improvements. Here goes! Includes program version string and crash time in application crash details. Cleaned up and optimized code in several functions including the application startup code, task scheduler related code, getDriveLabel(), and getDeviceIDFromDriveLetter() functions. Instructed the getNewestSystemRestorePointIDMadeByRestorePointCreator() function to return a 0 value if an exception is raised. Hopefully if an exception is raised in this function other parts of the program can fix the reason behind the exception when the user attempts to create System Restore Point. Updated embedded Microsoft.Win32.TaskScheduler DLL file to latest version. Updated the embedded Fody component used to embed and load required DLLs into the primary binary file. Additional code has been added to the doesAtUserLoginTaskExist() and doesRunTimeTaskExist() functions. Removed the ugly hack included in version 2.9 Build 6 and included proper code to fix systems with broken System Restore. Fixed an issue in which the disk space usage bar wasn't reset back to zero when selecting a drive without assigned space, increased the width of the window by a slight amount, and removed the Please Wait window from the Manage System Restore Storage Space window's routines. Added additional information to the "Enable My Computer Right-Click Menu Option" if something goes wrong. Added a small tweak that makes it so that if you download a beta version manually, it automatically sets the Update Channel to beta mode. More checks for Null Reference Exceptions have been put into the Application Startup code. Inserted an exception handler into the startup code to handle System.Runtime.InteropServices.COMException exceptions, if this crash happens the Task-based No-UAC Launcher is bypassed. Put checks in to make sure that the program's registry key was created properly. Put in code in the Create Restore Point at User Logon to ask if the user want to abandon changes. Removed the mentioning of the change log when updating to new beta builds. Put in a Win32Exception handler into the reRunAsAdmin() function to handle a situation in which a user said "No" to a Windows UAC prompt. Included an Event Log Viewer for the program's various event log entries that the program makes. An option has been added to turn off the program's logging of program loading and exiting to the Windows Event Log. Fixed several issues in which the starting location of a window wasn't being set. Build 2 improves the performance of the Event Log viewer in the program.
May 19, 2015 -- Version 2.9 Build 7
Fixed more issues with the Event Log logging of the program. Apparently Microsoft's implementation of the Event Log API documentation is completely incorrect/broken. Imagine that!
May 19, 2015 -- Version 2.9 Build 6
This is an emergency release. Fixed some more crashes that can occur on systems that have broken System Restore implementations. Unfortunately it appears that I have to implement a rather ugly hack to fix the crash issue. I'm not proud of it by any means. But the hack seems to work and I guess that's that. ARG! *bangs head against wall* Fixed a regression in which the progress bar will cause a crash.
May 18, 2015 -- Version 2.9 Build 4
This is an emergency release. Fixed a crash issue in which a 32-bit Integer overload may occur with the progress bar in some rare situations. Thanks goes out to Gad Feldan for reporting this issue. The progress bar has been updated to use a 64-bit Long type instead. Fixed some issues in the getShadowStorageData() function in which conversion of data types to Long types could cause a program crash. A Long.TryParse() has been added to parse these data types and if parsing fails a default value of 0 (zero) is returned. A crash catching function has been removed from the getShadowStorageData(), this was accidentally left over from when I was debugging the function a couple of builds back. Exception handling has been added to the writeToSystemEventLog() function for those rare situations in which it may be needed on systems that have a broken Event Log.
May 17, 2015 -- Version 2.9 Build 3
This is an emergency release. Includes additional fixes for event logging.
May 17, 2015 -- Version 2.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.
May 13, 2015 -- Version 2.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. This seems to have appeared out of nowhere, I have theories that circumstances may have changed in a recent Windows Update release. Up until a month ago, things worked fine until a recent Windows Update. 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.
May 1, 2015 -- Version 2.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.
April 25, 2015 -- Version 2.8 Build 2
Minor update to Build 1. Tweaked the width of the Disk Space Usage Window to be wider.
April 22, 2015 -- Version 2.8 Build 1
Fixed a rare issue in which the function that creates restore points may crash with a Null Reference Exception. Thanks goes out to Alan Pfleger for pointing this out to me in a bug report. Fixed a possible SecurityException crash that may occur in the toolStripMyComputer Click event. Thanks goes out to Gabriel Moises for pointing this out to me in a bug report. Fixed a possible UnauthorizedAccessException crash that may occur in the application startup routine. Thanks goes out to Donald Herbert for pointing this out to me in a bug report. Includes some optimizations to code in the program startup routine that's used to verify and parse certain registry values. Unified the code used to parse restore point creation date strings into Date objects. Includes some user interface fixes for Windows XP.
April 15, 2015 -- Version 2.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.
April 14, 2015 -- Version 2.6 Build 16
Fixed several crash issues that only occurred in Safe Mode.
April 14, 2015 -- Version 2.6 Build 15
Another minor build with some more crash catching code to narrow down where a specific kind of crash was occurring for some users. Put in code to disable certain functions in the program when in Windows Safe Mode, specifically the functions to create restore points.
April 13, 2015 -- Version 2.6 Build 14
This is a minor update to Build 12 in which some bugs were fix that caused specific GUI elements from not being disabled when they were supposed to be.
April 11, 2015 -- Version 2.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.
April 6, 2015 -- Version 2.6 Build 11
Minor code clean-ups which includes removal of repeated code which was replaced with a unified function. Added a Manage link to the View Disk Space Usage window even for drives that don't have Restore Point Space assigned to it, this way if you want to add assigned space you can manage it easier. Changed the starting location of several windows in the program so that they are centered in the parent. This should help people who have multi-monitor setups in which a new program window may appear on a monitor you didn't expect.
March 20, 2015 -- Version 2.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.
February 10, 2015 -- Version 2.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.
January 23, 2015 -- Version 2.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.
January 17, 2015 -- Version 2.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.
January 6, 2015 -- Version 2.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.
December 29, 2014 -- Version 2.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.
November 29, 2014 -- Version 2.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.
November 22, 2014 -- Version 2.4 Build 27
Getting ahead of the game with detections for Windows 10. The new version of Windows will be Windows 10 and the NT version will be... wait for it, Windows NT version 10. Yeah... OK Microsoft; whatever makes you happy. LOL Changed the default color for the progress bars to green instead of gray.
November 19, 2014 -- Version 2.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 publicly known exploits capable of being used against Windows XP. Please, for the sake of the larger Internet community, stop using Windows XP.
October 2, 2014 -- Version 2.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. The changes will go live when Microsoft updates the kernel version number in Windows 10.
August 16, 2014 -- Version 2.4 Build 23
A webRequest exception is no longer being treated as a program crash, it's now an error that is fully handled.
August 9, 2014 -- Version 2.4 Build 22
Included a possible fix to a crash when attempting to write to the restore point deletion log file.
August 8, 2014 -- Version 2.4 Build 21
Fixed a display bug on the View Disk Space Usage window in which the disk space usage bar's tooltip (the popup text when you hover the mouse cursor over it) said the free percentage when it should have said used percentage. Now it shows both used and free percentage for both the disk space usage and the shadow disk space usage bars.
July 12, 2014 -- Version 2.4 Build 20
Includes possible fix for crash in the checkForMyComputerRightClickOption() routine.
July 4, 2014 -- Version 2.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.
June 26, 2014 -- Version 2.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. Since the program is running on the user's computer with Administrator privileges rendering HTML could potentially open the program up for exploit if (God forbid) my web site was hacked to deploy malware. The resulting HTML would then be rendered by Internet Explorer with Administrator privileges thus having full capabilities to exploit the user's system. Changing to Rich Text decreases this exploit potential to nearly nothing.
June 16, 2014 -- Version 2.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.
June 10, 2014 -- Version 2.4 Build 15
Fixed a bug that prevented the program from functioning in Windows Safe Mode.
June 6, 2014 -- Version 2.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.
May 30, 2014 -- Version 2.4 Build 13
Completely broke the program in Build 12 on Windows XP. This build fixes the program on Windows XP. Have I mentioned how much I hate working with Windows XP? Yeah... I think so. Anyways, I primarily test this program on Windows Vista, 7, and 8.1 before deployment of the program. I generally don't test on Windows XP due to the fact that Microsoft has stopped official support for Windows XP. If you are still running Windows XP, I STRONGLY encourage you to upgrade to at least Windows 7 simply because you won't be receiving security updates on Windows XP.
May 29, 2014 -- Version 2.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.
May 29, 2014 -- Version 2.4 Build 11
Fixed a crash issue on the task scheduler window involving creating weekly schedules in which there are now checks in the code to make sure that you select days of the week to run the schedule on. When creating weekly schedules you must select days of the week to have it run on.
May 23, 2014 -- Version 2.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.
May 20, 2014 -- Version 2.4 Build 9
Fixed some issues with the program when Windows is in Safe Mode. More debugging code has been added to the Task Scheduler to try and figure out why the Save button doesn't work for some people.
May 17, 2014 -- Version 2.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.
May 12, 2014 -- Version 2.4 Build 7
Added the ability to turn off the repair of System Restore on all system drives that exist in a system. For power users who may have multiple Windows operating systems installed on their system, this repair of System Restore on all system drives may break System Restore on drives that belong to other Windows operating system installations. To turn repair off, go to Program Options/Settings, Advanced Options, and then click on "Disable repair of System Restore on System drives". This sets a specific registry entry for the program.
May 10, 2014 -- Version 2.4 Build 5
Fixed a small issue with the change that was implemented yesterday in Build 3. Build 6 includes a setting in the program to disable the new No UAC Launcher that first appeared in version 2.4 Build 3. You can also force the program to trigger a UAC prompt by calling the program with a "-forceuac" command line argument. Rebuilt the installer so that it adds an additional program shortcut with a "-forceuac" command line argument.
May 9, 2014 -- Version 2.4 Build 3
First version 2.4 release. For the first time ever in the history of this program, no UAC prompt is needed. The initial run with this new version will require a UAC prompt but after that, no UAC prompt should be required to run this program. If there is an error during the launch with no UAC prompt, a UAC prompt may appear.
May 8, 2014 -- Version 2.3 Build 14
Minor update. Fixed the viewing of the changelog.
May 8, 2014 -- Version 2.3 Build 13
Put some code in to specifically target the System.Runtime.InteropServices.COMException crash that some people have been reporting, if the crash occurs the program will launch a specific web page that I have on my web site that includes instructions on how to repair your Windows installation so that the program will function on your computer. Fixed double-clicking on the tray icon in which it didn't bring the program back up from being either minimized or from behind other program windows. Added a new button to the main window called "Create System Restore Point with your Default Custom Restore Point Name", this button will only appear if you have set a Default Custom Restore Point Name. Added the ability to load the changelog in a window in the program.
May 3, 2014 -- Version 2.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.
May 1, 2014 -- Version 2.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".
April 29, 2014 -- Version 2.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.
April 29, 2014 -- Version 2.3 Build 8
Included new message info types into the program. Now you have the option to be notified via message boxes or a balloon message from the taskbar. Modified the crash window that appears in this program with some added documentation, it now included some instructions to follow if you so happen to get a specific crash. Added the ability to disable System Restore on drives that are removable (not fixed volumes) to the Manage System Restore Storage Space window. A check has put into place on the Manage System Restore Storage Space window to make sure you didn't put zero as an inputted value.
April 26, 2014 -- Version 2.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.
April 23, 2014 -- Version 2.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.
April 21, 2014 -- Version 2.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.
April 17, 2014 -- Version 2.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.
April 17, 2014 -- Version 2.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.
April 14, 2014 -- Version 2.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.
March 25, 2014 -- Version 2.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.
March 23, 2014 -- Version 2.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.
March 23, 2014 -- Version 2.2 Build 12
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 0x81000202 which seem to point to the System Service being disabled. Code has been put into place to try and correct this.
March 21, 2014 -- Version 2.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.
March 18, 2014 -- Version 2.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.
March 9, 2014 -- Version 2.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.
March 6, 2014 -- Version 2.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.
February 28, 2014 -- Version 2.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.
February 16, 2014 -- Version 2.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.
February 14, 2014 -- Version 2.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.
February 4, 2014 -- Version 2.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.
February 4, 2014 -- Version 2.2 Build 2
Fixes a major issue on Windows 8/8.1 systems in which drives were being dropped out of the My Computer listing of drives. This was due to something that was added back in version 2.1 Build 1 that had unintended side-effects. This new version includes the removal of that code as well as a fix to remove the added Registry entries that were added by the removed code. This should resolve the drive drop-outs on Windows 8.
February 2, 2014 -- Version 2.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.
February 1, 2014 -- Version 2.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.
January 22, 2014 -- Version 2.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.
January 17, 2014 -- Version 2.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.
December 27, 2013 -- Version 2.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.
December 24, 2013 -- Version 2.1 Build 3
Minor improvements have been made to the changes contained in Build 2. This a maintenance release, not a bug fix.
December 21, 2013 -- Version 2.1 Build 2
Minor improvement to the Disk Space Usage window in which a perceived performance improvement of the tool should be noticed. The reason this is so is because all loading of the data for display was being done on the main window thread thus if for whatever reason be it having to wake up an HDD to get volume data or anything else, the program may appear to have frozen or locked up. The loading of the data for display has been moved to a separate processing thread so as to make sure that the program will not appear to have locked up while loading the data.
December 17, 2013 -- Version 2.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.
December 7, 2013 -- Version 2.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.
December 7, 2013 -- Version 1.9 Build 5
Fixed a crash at startup. This was caused by an order of operation issue in which the program was trying to access a Registry Key before it was created. This is a required update.
November 30, 2013 -- Version 1.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.
November 30, 2013 -- Version 1.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.
November 30, 2013 -- Version 1.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.
November 22, 2013 -- Version 1.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.
November 20, 2013 -- Version 1.8 Build 5
Fixed a crash with creating scheduled restore points. 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.
November 18, 2013 -- Version 1.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.
November 17, 2013 -- Version 1.8 Build 1
This new version is chock full of new features and fixes after almost three weeks of beta testing. Without further ado, I present the massive list of changes.
- 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.
October 25, 2013 -- Version 1.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.
October 23, 2013 -- Version 1.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.
October 22, 2013 -- Version 1.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.
October 22, 2013 -- Version 1.6 Build 10
Fixed an issue with the program's embedded app manifest file.
October 18, 2013 -- Version 1.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. Upgraded to Visual Studio 2012 from version 2010. This is a minor update to Build 8 therefore it is entirely your choice to download and update to it.
October 15, 2013 -- Version 1.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.
October 13, 2013 -- Version 1.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.
October 13, 2013 -- Version 1.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.
October 13, 2013 -- Version 1.6 Build 4
More user interface cleanups. About program message changed to include copyright line.
October 10, 2013 -- Version 1.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.
October 10, 2013 -- Version 1.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.
October 8, 2013 -- Version 1.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.
October 4, 2013 -- Version 1.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.
October 2, 2013 -- Version 1.5 Build 6
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.
October 2, 2013 -- Version 1.5 Build 5
More fine-grained control over scheduling the creation of restore points has now been implemented. In the past you could only schedule the creation of restore points on a daily or day-by-day basis. Now you can schedule the creation of restore points so that one is only made every whatever amount of days you want. So if you want one made every two days, then you have that ability now with these new changes. Three? Yep. Four? Yep again.
October 1, 2013 -- Version 1.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).
October 1, 2013 -- Version 1.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.
October 1, 2013 -- Version 1.5 Build 2
Added an internal log file viewer to the program so you can read the Restore Point Deletion Log File without having to use an external viewer. It has rich text formatting for easy reading inside the program. There is also an option to open the file in an external program. Code has been put into place to notify a user that official Windows XP support for the program will end on April 8th, 2014. The message will continue to appear at startup unless the user says to not repeat it. After April 8th, 2014 the program will show a message that the program will no longer support Windows XP at every startup.
September 25, 2013 -- Version 1.5 Build 1
Hot the heels of Version 1.4 Build 7 comes Version 1.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.
September 25, 2013 -- Version 1.4 Build 7
Included code to translate some of the required settings used for deleting old restore points during the scheduled tasks from the program's internal settings file to the Windows Registry. Many changes have been done to the installer's uninstall routine in which a complete cleanup is now performed when uninstalling the program. This includes deleting log files, Registry keys, internal program setting files, etc. Upon uninstalling the program, a web page is opened up asking why you uninstalled the program. The generation of a cached compiled .NET binary has also been programmed to be created during the installation of the program.
September 24, 2013 -- Version 1.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.
September 24, 2013 -- Version 1.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.
September 21, 2013 -- Version 1.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.
September 20, 2013 -- Version 1.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.
September 13, 2013 -- Version 1.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.
September 11, 2013 -- Version 1.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.
September 11, 2013 -- Version 1.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.
August 27, 2013 -- Version 1.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.
August 27, 2013 -- Version 1.3 Build 23
Added the ability to log details of System Restore Points that are deleted by the program. Changed some of the code used to load system drive letters on the Manage System Restore Storage Space window. The old code was missing several drive letters on my test system. Fixed a Null Reference Exception bug that may occur under certain circumstances on the Manage System Restore Storage Space window when clicking on a drive letter. Added some text to the Manage System Restore Storage Space window to show the drive label of the drive when you click on a drive letter. Removed the System Restore Point Max Days from the Manage System Restore Storage Space window, that was redundant since that's located in an other area of the program. Fixed more memory leaks in the program, several objects that linked into the Windows Task Scheduler weren't closed properly along with several WMI handles as well. Fixed a crash on Startup of the program on 32-bit machines, 64-bit machines did not have this crash issue.
August 27, 2013 -- Version 1.3 Build 22
The program has been instructed to delete a registry value that has caused some user's System Restore Points to simply disappear. This is because Windows automatically deletes old System Restore Points but doesn't at all gives users the ability to configure the maximum age of System Restore Points at which they are deleted. Obviously, that's bad. A new scheduled task option has been added to the Task Scheduler window in which it gives the ability for users to create a separate task to delete old System Restore Points. This way if you don't want to delete old Restore Points at the same time that a Scheduled Restore Point is created, you now have the option to do so. If you tell the program to delete old Restore Points when a Scheduled Restore Point is created, the scheduled task to delete old Restore Points is deleted since it's redundant at that point. The program now gives you much more control over the age of System Restore Points on your system than Microsoft gives in Windows itself.
August 24, 2013 -- Version 1.3 Build 19
Now, you won't have to do that last part I mentioned in Build 18's change log. I simply changed the setting name that's used for the "Delete Old System Restore Points After Scheduled Restore Point is created" setting so the default should no longer be On (True). Bad part is that if you, yourself, enabled it, you will have to go back in an re-enable it yourself.
August 24, 2013 -- Version 1.3 Build 18
Added the ability to change some more System Restore Point Subsystem Settings to Manage System Restore Storage Space window. Fixed an issue in which a manual Check for Updates command would freeze the main window, this has been fixed by putting the Check for Updates routine into a separate processing thread. Set the default setting for the "Delete Old System Restore Points After Scheduled Restore Point is created" on the Task Scheduler window to Off (False). Anyone who has updated to new versions since Build 15 will have to go to the Task Scheduler window to turn it off if they so choose to have it disabled. This was a mistake on my behalf, when I created the Setting in the Settings part of the Visual Basic project I forgot to set the default to False when I created the new setting. This was a stupid mistake.
August 21, 2013 -- Version 1.3 Build 15
Included new functionality to cleanup old System Restore Points. There's a button on the main window that allows you to delete old System Restore Points based upon a setting you choose. Also, there's a new option on the Task Scheduling window in which you can enable the deletion of old System Restore Points when a scheduled System Restore Point is created by the program. Again, the setting of the age of System Restore Points is based upon what you choose. The age of System Restore Points is expressed in days. The original Build 14 was retracted due to a bug that I didn't catch, this new Build 15 fixes that bug.
August 19, 2013 -- Version 1.3 Build 12
Settings should no longer be lost between new versions of the program. For some reason the code obfuscator was causing the settings for the program to become mangled. This should be corrected.
August 18, 2013 -- Version 1.3 Build 11
Fixed a regression on the Disk Space Usage Window in which the scrolling part of the window when the window is too small to show all of the contents isn't activated properly. The cause of it was that the scrolling group box wasn't given proper focus.
August 11, 2013 -- Version 1.3 Build 9
Re-arranged the days of the week checkboxes on the Task Scheduler window to be in a more logical order. Re-arranged many of the buttons on the main window so that they are now side-by-side. The buttons on the main window have been arranged into categories, namely "System Restore Point Tasks" and "Utilities". The list of System Restore Points have also been given a popup context menu that you can use, it has the same functions as found in the "System Restore Point Tasks" button group. Added some more data to the Disk Space Usage window in which it will show you the amount of Shadow Storage Space or System Restore Space that's available in a progress bar much like how it shows how much disk space is available. Fixed a bug in which moving the mouse over the Disk Space Usage window when unfocused would cause the window to become focused even if the window was not in focus.
August 3, 2013 -- Version 1.3 Build 5
Includes detection for an obscure Windows Volume Shadow Copy Service crash. The program will give an error message of the following...
"Shadow Copy Service Provider error detected!
Please reference the following Microsoft Support Knowledge Base Article...
August 1, 2013 -- Version 1.3 Build 4
Hot the heels of the Build 3 of Version 1.3 comes Build 4. Fixed a crash issue on the Disk Space Usage window.
August 1, 2013 -- Version 1.3 Build 3
Added to the Manage System Restore Storage Space window the ability to show the size of the drive. Conducted a code review of the program to look for memory leaks in the code. There were several areas of the program in which objects weren't being disposed of properly. This caused the amount User Objects to continue to rise throughout the use of the program which resulted in memory leaks. Most if not all known memory leaks have been fixed.
July 26, 2013 -- Version 1.3 Build 2
Hot the heels of the initial Build 1 of Version 1.3 comes Build 2. Now the program has the ability to manage your System Restore Point Storage Capacity. This allows you to set the maximum size Windows will use on your drives to store System Restore Points. For instance, if you set a drive's System Restore Point Storage Capacity to 10 GBs of storage, Windows will only be able to use 10 GBs of storage on the drive and if it fills it up it starts deleting older System Restore Points. If you like to keep a lot of System Restore Points around, the larger the storage capacity the better. This new part of the program allows you to do just that, set a drive's System Restore Point Storage Capacity.
July 26, 2013 -- Version 1.3 Build 1
Based upon a request for this new feature, a new version has been released. Now the Disk Space Usage window will not only show how much disk space is being used on the disk but also statistics from the Windows System Restore Subsystem as well. It now shows how much of the disk has been reserved as space to store System Restore Points, how much of that space is being used, and a percentage of the space being used.
July 20, 2013 -- Version 1.2 Build 37
In the past, only the size of the window was saved by the program. Now, both the size of the window and the widths of the columns in the System Restore Points list are saved. The saving of column widths was somehow broken in past versions, I have no idea when it was broken but it has been fixed now. Now the most recent System Restore Point is made bold in the System Restore Points list. When selecting System Restore Points in the System Restore Points list the "Delete Selected Restore Point" button is disabled if you select the most recent Restore Point in the list. This change makes sure that you can't delete the most recent System Restore Point.
July 9, 2013 -- Version 1.2 Build 36
Added the ability to delete the task to the Task Scheduler part of the program. Now there is a clear indication that a scheduled task doesn't exist. When none of the radio buttons (Daily and Weekly) are "checked", it means that a scheduled task doesn't exist. The program's executable binary has code obfuscation enabled to protect the binary from being de-compiled. Certified by VirusTotal to be virus free!
July 5, 2013 -- Version 1.2 Build 35
Recompiled the executable binary without code obfuscation enabled. This was causing the program to be detected as a virus by many antivirus firms. VirusTotal Results
July 4, 2013 -- Version 1.2 Build 34
Fixed an issue with the command line switched in which the wrong type of System Restore Point was being created.
July 1, 2013 -- Version 1.2 Build 33
The executable binary has been recompiled with code obfuscation enabled. This is to protect the program from being disassembled and to protect my intellectual property.
June 29, 2013 -- Version 1.2 Build 31
A slight modification was done to the download of the DLL in Build 31. In Build 30 the program was downloading an uncompressed version of the DLL, in Build 31 the program is now instructed to download a GZip compressed version of the file which is a download that's far smaller in size and decompress it upon downloading. If you already have Build 30, it's not necessary to download this new build. Basically this change was made so I can save bandwidth on my web server. Bandwidth ain't cheap!
June 28, 2013 -- Version 1.2 Build 30
Introduced a new feature, the ability to schedule the creation of System Restore Points. This is made possible by using the Windows Task Scheduler. A user interface to create a scheduled task is part of the program now. A new required DLL is packaged with the program, namely Microsoft.Win32.TaskScheduler.dll. It is the DLL that's required to interface with the Windows Task Scheduling system to create, edit, and manage the scheduled System Restore Point Scheduled Task. The program is instructed to detect if the DLL exists and if it doesn't exist the program downloads the DLL from my web site and saves it in the appropriate location.
June 20, 2013 -- Version 1.2 Build 24
Corrected some issues with the update checker. Due to some issues with some ISPs, the method I was using to detect whether or not a user had an active Internet connection would fail. In past versions, I would ping 220.127.116.11 which is one of Google's public DNS servers and if the ping was successful the program would assume that the user had an active Internet connection. Apparently on some ISPs this would fail. Starting with Build 24 the program attempts to access a simple text file on my web site. If that works, it assumes the user has an active Internet connection and then continues the update checking process.
June 13, 2013 -- Version 1.2 Build 23
Fixed a major issue with Windows XP in which creating a System Restore Point would result in a critical error message and no System Restore Point created. This was an issue that came about with Build 22, apparently in Windows XP System Restore operates differently than Windows Vista, 7, and 8. Includes some user interface tweaks as well.
June 9, 2013 -- Version 1.2 Build 22
Changed the type of System Restore Point created by this program. There are several types to be made, this change puts it more in line with the type that the standard Windows System Restore Point GUI makes. This in no way makes your past System Restore Points invalid, this simply makes it more consistent with Windows.
May 28, 2013 -- Version 1.2 Build 21
Includes better detection of Windows 64-bit operating systems.
May 28, 2013 -- Version 1.2 Build 20
Updated the program to include support for the future Windows 8.1.
May 13, 2013 -- Version 1.2 Build 19
Fixed a crash issue in the Disk Space Usage tool.
March 31, 2013 -- Version 1.2 Build 15
Fixed a tiny bug in which the progress bar that shows above the list of System Restore Points did not re-appear after deleting some Restore Points when you go ahead and decide to delete some more System Restore Points. For whatever reason, the program didn't make the progress bar re-appear after being hidden.
March 19, 2013 -- Version 1.2 Build 14
OK, I lied. Build 12 had a bug in which the Disk Space Usage window didn't scroll when using a mouse's Scroll Wheel. This has been corrected in Build 14. So now, Build 14 will be the final version for quite some time. As of right now, there are no bugs in the program (other than the one that I just fixed) and no features that I can see that are needed to be added to the program. So as of right now, Version 1.2 Build 14 is the final version until the next version of Windows is released if changes are required for that new edition of Windows.
February 10, 2013 -- Version 1.1 Build 14
This new version hopefully solves some of the issues in which the program takes a long time to start. I believe that the issue that was causing it was the routine that loads the currently existing System Restore Points from Windows into the program's list. I have since made it so that this routine now doesn't run in the same thread that the core program runs in, it now runs in a separate thread. This should make it so that the program's GUI will load and appear even though the System Restore Points list hasn't yet been populated. Deleting of System Restore Points also occurs in a separate thread from what the User Interface uses. This should make it so that the UI remains somewhat more responsive than it was before when deleting System Restore Points.
January 7, 2013 -- Version 1.1 Build 10
Made it so that the confirmation that a System Restore Point is only shown at the end of deleting all of the System Restore Points that the user has selected. In the past, for each System Restore Point that the user chose to delete the program gave a confirmation message box telling the user that the System Restore Point was deleted. This behavior has changed so that only at the end of deleting all of the selected System Restore Points a confirmation message box is shown.