Release History (Changelog)

JkDefragGUI / JkDefrag

Version Date Changelog / Download
MyDefragGUI 2.0
beta 1
May 30, 2009
- new name MyDefragGUI
JkDefragGUI 1.16 Nov 01, 2008 - Added a directory filter to include and exclude up to 20 directories with the possibility to arrange the order processing
- Renamed and split the tab 'Log' in two sub tabs: 'After' and 'Log'
- Added the possibility to close JkDefrag and the GUI separately when defragmentation is finished
- Added as third operation system behaviour when defragmentation is finished the mode standby
- Added the possibility to save settings automatically when the program will be closed
- Added the possibility to start an other free selectable program after closing the program
- Added an info window for the case that the JkDefrag window is already closed but the process is still running in the background
  Download GUI v1.16 including JkDefrag 3.36 ( Downloads) [MD5 checksum]
JkDefragGUI 1.15 Aug 24, 2008 - Removed at 'About-window' the display of the drive name, file system and drive type
- Added at 'About-window' the display of the platform, operating system and system path
- Changed at 'About-window' the display of free and used memory. Now free and used memory shows no more the memory of the selected drive but the memory of all drives (display of selected directory remains)
- Changed at 'About-window' the colour display of the used memory at the graphical bar. Now it indicates depending on storage continuously from yellow over orange to red
- Added the display of all for the system available drives at one display with checkbox selection and additional display of drive and used size (changed from combo box to list view)
- Changed some links, button behaviours and the program look
- Excluded the doc files from the compiled package
- Fixed a bug which could appear at program starting if the program is too slow loaded into the working memory (appeared at the external and hidden mode)
- Fixed a bug at window snapping to screen edges behaviour
- Fixed a bug that crashes the program if more items than intended are in the language files
- Fixed a bug in directory selection
- Further small changes
  Download JkDefragGUI v1.15 including JkDefrag 3.35g ( Downloads) [MD5 checksum]
JkDefragGUI 1.14.5 Aug 08, 2008 - beta version
JkDefragGUI 1.14
Apr 10, 2008 - Added full-text search to documentation
- Changed the texture of the documentation and separated the documentation according to languages
- Reduced average capacity utilization of CPU by ⅔
- Added the possibility to specify own audio file which is played when defragmentation is finished and the possibility to deactivate internal tone
- Improved the design and handling of date selection at the task manager tab
- Added saving of date selection value in the settings file
- Added delayed starting for the task manager for the modes on idle, at startup, at logon
- Added pull-down menu at the 'when ready' group for shutdown and added the possibility to reboot
  Download JkDefragGUI v1.14 including JkDefrag 3.32 ( Downloads) [MD5 checksum]
JkDefragGUI 1.13.1
JkDefragGUI 1.13.0
Apr 05, 2008
Mar 20, 2008
- beta version
- beta version
JkDefragGUI 1.12 Feb 29, 2008 - Added icons to the pull-down menu
- Fixed the icon display at the tool bar on Vista
- Modified script for html-logfile to changed line dump
- Added after update download desktop and quick-launch link
- Added link testing at download whether server is online
- Added user-specific spacehogs input box with checkbox for select/deselect internal spacehogs list
- Added saving of quit and shutdown values in the settings file
- Designed and added tray menu icons for hidden mode
- Changed the display of memory size name at the about window from SI to binary units
- Added SI and binary display of memory size at the about window as tip
- Fixed a bug which occurred if there was saved a unknown language name in the settings file (could emerge only by manual entry)
- Fixed the display of the Task-Manager status when changing the language
- Added to the html-logfile at "the 25 biggest files" active links to the file folder (experimental)
- Added to the html-logfile three-digit grouping
- Fixed a double apply of the -e mask at the screen saver in some cases
- Changed: if a directory for defragmentation was saved and the GUI is started new the drives pull-down menu and the all drives checkbox is now greyed out
- Added snapping of GUI windows to the screen edges
- Added info window when browser have to start to show html-logfile
- Further diverse minor fixes and changes
  Download JkDefragGUI v1.12 including JkDefrag 3.34 ( Downloads) [MD5 checksum]
JkDefragGUI 1.11
(1.10.1 - 1.10.4)
Autumn 2007 not released;
only several beta versions
JkDefragGUI 1.10 Aug 18, 2007 - Version numbers from title bar to "About" window
- Intervals at scheduler improved ("once" with calendar)
- Added drive information (Name, System, Type, Space)
- Added color-cluster information window
- Now logfiles are also shown as html-logfile
- Changed from global to local shortcuts
- and further small changes
  Download JkDefragGUI v1.10 including JkDefrag 3.16 ( Downloads) [MD5 checksum]
JkDefragGUI 1.9 Jun 15, 2007 - Added new actions 7 to 11 (action 4 removed)
- Documentation more strongly revised
- Tray text by mode hidden revised
- Command line values of the screensaver are now considered
- Windows 2000 display errors eliminated
- Log file names partly changed (changed JkDefragTaskManager.log; added JkDefragScreenSaver.log)
- Internal improvements
  Download JkDefragGUI v1.9 including JkDefrag 3.14 ( Downloads) [MD5 checksum]
JkDefragGUI 1.8 Jun 02, 2007 - Reworked tab arrangement
- Integrated Screensaver functions (new tab)
- Added three languages (russian / japanese / italian)
- Now you can delete the unnecessary language files from the folder languages
  Download JkDefragGUI v1.8 including JkDefrag 3.8 ( Downloads) [MD5 checksum]
JkDefragGUI 1.7 Apr 30, 2007 - Added selection quit when ready
- Added selection shutdown when ready
- Added a tone to notice when defragmentation is ready
- Now you can additionally exclude a whole drive
- Added a display of the number of program uses at the 'About' window
- Added a display of the past time since starting the program at the 'About' window
- Added the drive names to the drive letters at the drive combobox
  Download JkDefragGUI v1.7 including JkDefrag 3.8 ( Downloads) [MD5 checksum]
JkDefragGUI 1.6
GUI 1.6 beta
Mar 27, 2007
Mar 08, 2007
- Further working modes now possible (internal and hidden)
- Added Icon bar with the most important functions
- Now scheduler runs with the command line version
- Now scheduler also runs without password entry
- Added saving of all scheduler settings
- bug: working of the scheduler if the file JkDefragGUI.exe is in a path with spaces (fixed)
- bug: reading a log file with date over the menu (fixed)
- Modified: working shortcut of ctrl+f only if log file exists (after first program run)
- Modified: separated language files
- Added three languages (spanish / french / esperanto)
- Added storing of window position
- Added further mayor changes and bug fixes
  Download JkDefragGUI v1.6 including JkDefrag 3.7 ( Downloads) [MD5 checksum]
JkDefragGUI 1.5 Feb 28, 2007 - Split main tab in two sub tabs
- Added possibility to defragment individual directories
- Added possibility to skip individual directories (new -e command)
- Added possibility to specify the size of free space on drive (new -f command)
- Added new 'action 6'
- Added further minor changes
  Download JkDefragGUI v1.5 including JkDefrag 3.7 ( Downloads) [MD5 checksum]
JkDefragGUI 1.4
GUI 1.4 beta
Feb 23, 2007
Feb 20, 2007
- Multi language support (english / german / dutch)
- Also portable drives are indicated
- Added selection of the day of the week in scheduler
- Added checkbox at task-manager to make password-field visible
- Shortcuts usage
- Fixed some bugs
  Download JkDefragGUI v1.4 including JkDefrag 3.6 ( Downloads) [MD5 checksum]
JkDefragGUI 1.3 Feb 08, 2007 - New designed GUI-Icon
- Item arrangement changed
- Now you can select all drives at once
- Now there are three log file modes and read them from the program (create no log file, overwrite existing log file, create new log file)
- Now you can save your settings in a ini-file (except Task-Manager)
- Documentation renewed
  Download JkDefragGUI v1.3 including JkDefrag 3.6 ( Downloads) [MD5 checksum]
JkDefragGUI 1.2 Feb 02, 2007 - Added a third tab
- Added a Task-Manager for schedule job
- Update-function improved
- French web site source added
- Info-menu changed
  Download JkDefragGUI v1.2 including JkDefrag 3.6 ( Downloads) [MD5 checksum]
JkDefragGUI 1.1 Jan 23, 2007 - Added a second tab
- Item arrangement changed
- Added a start and cancel button
- Now you can read the log file from the program
- Menu of web site sources
- Help-menu with update-function, documentation and info
- Added new 'action 5'
- Added debug choice plus new debug mode 6
  Download JkDefragGUI v1.1 including JkDefrag 3.6 ( Downloads) [MD5 checksum]
JkDefragGUI 1.0 Jan 18, 2007 Initial public release
  Download JkDefragGUI v1.0 including JkDefrag 3.5 ( Downloads) [MD5 checksum]
Version Date Changelog / Download
MyDefrag 4.0
beta 1
Feb 20, 2009 Beta:
- new name MyDefrag
JkDefrag 3.36 Aug 31, 2008 - Reverted back to an old Microsoft Screensaver library. The 2008 compiler has a library that is incompatible with Windows XP ("The procedure entry point ChangeWindowMessageFilter could not be located in the dynamic link library USER32.dll").
- Fixed a problem with extremely long path names.
  Download JkDefrag v3.36de ( Downloads) [MD5 checksum]
JkDefrag 3.35 Aug 27, 2008 - Upgraded to the Microsoft Visual Studio 2008 compiler.
- Logfile is now written in UTF-8, it used to be ANSI.
- Changed the default font into a smaller font.
- A change in the display code to respond faster to multiple redraw requests, for example when the users resizes the window.
- Rewrite of the subroutine that finds combinations of files to fill a gap, to make it faster.
- Changed the algorithm for "-a 6" (move to end of disk) to better fill gaps.
- Changed the way disks are accessed to accomodate special kinds of disks, such as virtual and encrypted disks.
- Bugfix in the screensaver for very long commandlines.
- Change in the disk analyzation code to fix a "zero bytes per cluster" problem.
JkDefrag 3.34
Feb 01, 2008 - Re-fixed the "DisableDefaults" bug.
- Partial undo of the change that uses the mountpoint of a volume. It was causing problems during the automatic scanning for disks to be defragmented.
- Pushed the "Zone calculation" messages down to debug level 4.
- Fixed the VisualC example project.
  Download JkDefrag v3.34de ( Downloads) [MD5 checksum]
JkDefrag 3.33
Dez 23, 2007 - Fixed a bug in the Windows version that for some users caused the display of the diskmap to get stuck.
- Fixed a bug in the forced-fill optimization that caused the program to skip fragments that were left by filling a gap with a part of the fragment.
- If the volumename of a disk cannot be determined then the program will now fallback to using the mountpoint of a volume to open a handle.
- If the user specifies a short input mask without a wildcard, for example "C:" or "C:\", then the input mask is rewritten as "C:\*".
- Fixed a bug where the special "DisableDefaults" spacehogs mask only disabled the masks, but not the "Files bigger than 50 megabytes"" and "Files not accessed in the last month" criteria.
- Bundled some language-specific SpaceHogs masks into "?:\\*\\Installshield Installation Information\\*".
- Moved the "Volume ID" message for FAT disks from debug level zero to 6.
JkDefrag 3.32
Dez 03, 2007 - Fixed a bug in the FAT scanner that caused the program to crash on volume names shorter than 9 characters.
- Simplified the rules that automatically change the mask that selects which disk/folders/files must be processed. It now simple prepends and appends an asterisk if there is no asterisk yet.
- Some small changes in the graphics code.
- Fixed a bug in the commandline version that showed zone numbers 0...2, instead of 1...3.
JkDefrag 3.31
Dez 02, 2007 - Fixed a problem in the Windows version, it now redraws the diskmap when the user changes the size of the window.
- Added special cases to the exclude masks to recognise a drive letter without an asterisk, for example "c", "c:", or "c:\".
JkDefrag 3.30
Nov 30, 2007 - FAT disks are now analysed by directly reading the FAT from disk. This is a lot faster, and finds more system files.
- Changes to the graphics routines in the Windows and screensaver versions. The screen is now updated faster and more efficiently.
- Added the "average begin-end distance" statistic to the report.
- The commandline is now scanned for the "-l" logfile option before anything is written to the logfile.
- Changed the progress counter for the Fixup phase.
- Added a second fixup phase after optimizing "-a 3" to catch files that could not be moved the first time.
- Bugfix for automatic processing of volumes that are mounted on a directory instead of a drive letter.
JkDefrag 3.29
3.29b beta
3.29c beta
3.29d beta
3.29e beta
3.29f bugfix
Nov 16, 2007
Nov 05, 2007
Nov 06, 2007
Nov 07, 2007
Nov 11, 2007
Nov 12, 2007
- Total rewrite of the "-a 7"..."-a 11" sorted optimizations.
- Total rewrite of the code that calculates the begin of the zones.
- Excluded files are no longer listed in the "These items could not be moved" report.
- Bugfix in the Windows version for very long filenames.
- Added exception to ignore the Symantec GoBack configuration files.
- Added protection against defragging hybernated disks.
- Added to the list of build-in spacehogs: ?:\\windows.old\\*; *.dvr-ms; *.wmv
JkDefrag 3.28
Nov 02, 2007 - Restored the manifest file. I did not notice that the compiler had overwritten the manifest file, causing JkDefrag not to start on Windows XP.
JkDefrag 3.27
Nov 01, 2007 - Changed action "-a 2" into defragment only (no fixup), and moved the "fixup" for "-a 3" to phase 3.
- If the program detects that directories cannot be moved (on FAT disks) then messages about unmovable directories are suppressed in the status report.
- Added code to the screensaver that instructs Windows not to go into power saver mode while the program is running.
- Changed the percentage progress counter for "fixup".
- The program will now always exit with return code zero (success), instead of 1 (error).
- Bugfix for infinite loop in the "-a 5" action (force together).
- Removed the extraneous "already has a list of fragments" error message in the logfile.
- Added the special exception to ignore the DriveCrypt "?:\\BootAuth?.sys" files to the NTFS scanner.
- Bugfix for a memory leak in the NTFS scanner.
- Bugfix in the status report for the number of fragmented files.
JkDefrag 3.26
Sep 19, 2007 - Undo of one of the changes from v3.25 in the graphics code, screensaver only. The changes worked fine for the Windows version, but showed a completely black screen in the screensaver.
JkDefrag 3.25 Sep 16, 2007 - Fix for reading the "$MFT::$BITMAP". In some very special cases the bitmap would only be partially read, causing files on disk to be ignored.
- Fix for the "::$SECURITY_DESCRIPTOR" problem. Directories with a special security attribute would get this string appended to their name, making them unmovable.
- Reorganised the code for the out-of-sequence fix (see previous releases).
- Two fixes in the graphics subroutines. Some users reported that the display sometimes froze during normal operation.
- Excluded items are no longer listed in the "These items could not be moved" and "These items are still fragmented" reports.
- The error message "Cannot find volume name for mountpoint: %s" was changed into "Ignoring volume '%s' because it is not a harddisk.".
- Added "?:\WINDOWS\system32\dllcache\*" to the default list of SpaceHogs.
For programmers:
- Addedd message 57 to the messages.
JkDefrag 3.24
bugfix / stable
Sep 03, 2007 - A final fix for the out-of-sequence problem.
- Bugfix for missing parameter in status message that caused JkDefrag to crash when it wanted to display the "Cannot find volume name for mountpoint" message. This message can happen when scanning the system for disks and a special volume is encountered such as a "subst" volume.
- The "25 largest items on disk" list in the statusreport is now sorted by (used) clusters instead of by (allocated) bytes.
- Fixed the progress percentage during analysis of NTFS volumes. It was counting too fast and reached 100% before analysis was complete.
- The "unmovable", "still fragmented", and "largest 25" lists in the report are now suppressed if empty.
- Directories on FAT disks cannot be moved, this is a known limitation of the Microsoft defragmentation API and not a bug in JkDefrag. To speed up things the program will now count the number of failed tries to move directories, and when it reaches 20 will ignore all directories.
  Download JkDefrag v3.24de ( Downloads) [MD5 checksum]
JkDefrag 3.23
Aug 31, 2007 - Another fix of the out-of-sequence problem: deleted the previous fixes and added code that will delay the processing of the AttributeList in the MFT until the Data attribute has been processed.
- Fixed the test for the NtfsDisableLastAccessUpdate registry key (see v3.19). If the key is not available the program defaulted to ignoring the LastAccessTime.
JkDefrag 3.22
Aug 30, 2007 - Another fix of the fix. The out-of-sequence rundata on these a-typical disks caused yet another error. If have now made a special exception for the MFT to accept even out-of-sequence rundata.
JkDefrag 3.21
Aug 30, 2007 - Fixed the fix in v3.20 for the problem that caused the NTFS analysis code to malfunction on a-typical NTFS disks. The fix only worked on disks with a cluster size of 4096 bytes, it now works on all disks.
JkDefrag 3.20
Aug 29, 2007 - The NTFS analysis code now also interprets Inodes 12 to 23.
- Fixed a problem that caused the NTFS analysis code to malfunction on a-typical NTFS disks.
- The icon now also shows in the taskbar and the upper-left-hand corner of JkDefrag's window.
- Softened the messages generated by the NTFS analysis code.
JkDefrag 3.19
Aug 27, 2007 - Fixed a bug that caused the program to crash at various places during execution, mostly on Windows XP.
- If the NtfsDisableLastAccessUpdate registry key is set then the program will not look at the LastAccessTime when testing if a file is a SpaceHog.
- Added to the default list of spacehogs: ?:\I386\*, *.old, *.bak
  Download JkDefrag v3.19de ( Downloads) [MD5 checksum]
JkDefrag 3.18
Aug 26, 2007 - The icon now has a transparant background.
- Icon added to the X64 JkDefrag and JkDefragCmd binaries.
- Bugfix in the calculation of the begin of the zone's. The old method did not take excluded files into account.
- Changed two buffers from being allocated with "new" into "malloc". I hope this fixes the weird "ModName: ntdll.dll ModVer: 5.1.2600.2180" crash that some users are experiencing on XP.
JkDefrag 3.17
Aug 24, 2007 - NTFS disks are now analysed by directly reading the MFT from disk. This is a lot faster, and finds more system files.
- NTFS streams are now supported and will be defragged and optimized.
- Added an icon.
- Added a version info resource to the executables.
- Added a manifest so Vista will always run JkDefrag with administrator privileges.
- Added support for short filenames. The masks now also work for short names, for example "PROGRA~1" (instead of "Program Files").
- Spacehogs are now shown in dark-green, regular files in light-green. Allocated space is now shown in grey, instead of black.
- Bugfix in redrawing the diskmap, to properly handle redraw-requests while redrawing.
- Files larger than 1 gigabyte are now closed and re-opened at 1 gigabyte intervals.
- Change in the fast optimize algorithm. When a gap cannot be perfectly filled the program now takes the highest file on disk that will fit, instead of the largest file. This reduces the amount of data moved and optimization will finish quicker.
- Added a special exception for the "?:\\BootAuth?.sys" files used by DriveCrypt.
- Added a few extra lines to the status report.
- The logfile now shows which command line options were used.
- Added to the default list of spacehogs:
  FAT on 2K/XP: ?:\RECYCLED\*
  Vista: ?:\$RECYCLE.BIN\*, ?:\WINDOWS\Ehome\*, ?:\WINDOWS\Fonts\*, ?:\WINDOWS\Help\*, ?:\WINDOWS\IME\*, ?:\WINDOWS\Speech\*, ?:\WINDOWS\Symbols\*, *.chm, *.mp3, *.pdf, *.bup, *.ifo, *.vob, *.avi, *.log
For programmers:
- All instances of CHAR changed into WCHAR. This has widespread implications in many locations. I am hoping the change will fix the problem that some users have reported on weird filenames.
- Renamed "JkDefrag.cpp" into "JkDefragLib.cpp"
- Renamed "JkDefrag.h" into "JkDefragLib.h"
- Renamed "JkDefragWindows.cpp" into "JkDefrag.cpp"
- Added "ScanNtfs.cpp" and "ScanNtfs.h"
- Several changes in the DefragDataStruct.
- Several changes in the "Makefile" to facilitate debugging.
JkDefrag 3.16
Jun 22, 2007 - Changed the message in the docs about the screensaver under Vista, it works if User Account Control is turned off.
- Bugfix in "-a 3" (fast optimize). It would not use Perfect Fit for gaps that were larger than all the data already processed.
- Bugfix in "-a 6" (move to end of disk). Files in zone 1 would not be moved.
- Added some translations of "Program Files" to the build-in list of SpaceHogs:
Archivos de programa Spanish
Arquivos de programas Brazilian Portuguese
Ohjelmatiedostot Finnish
Program Files All others
Program Swedish
Programas Portuguese
ProgramFiler Norwegian
Programme German
Programmer Danish
Programmes French
Programmi Italian.
- Fixed a typo in the "System Volume Information" string in the SpaceHogs.
- Fixed the displaying of the zone number, should have been + 1.
For programmers:
- Changed the "makefile.bat" script, "JkDefrag.exe" does not need to be linked with "JkDefragScreenSaver.res".
  Download JkDefrag v3.16de ( Downloads) [MD5 checksum]
JkDefrag 3.15 Jun 14, 2007 - Added extra breakpoints so the program will quit faster.
- Added special exception for Acronis OS Selector files.
- Changes to facilitate Delphi programmers. All callbacks are now CDECL.
- Added a Pascal example program.
JkDefrag 3.14 Jun 09, 2007 - Bugfix for the "-u" commandline option.
- Files are now classed as a Spacehog when their last access time is more than 30 days ago.
- Deleted the "full" optimization ("-a 4"). For backward compatibility the program still accepts the option, but does exactly the same as for "-a 3".
- The screensaver will now not start if it detects that the computer is running on battery power.
- Deleted the code that disables the Windows display idle timer (screen saver) and system idle timer (power saver) in the commandline and screensaver versions.
For programmers:
- Deleted message 57 from the message array.
- Changed the meaning of the "Data->Phase" variable used by the ShowStatus() callback.
- The ShowStatus() callback is now executed once for every zone in the "-a 3" and "-a 7"..."-a 11" optimizations.
  Download JkDefrag v3.14de ( Downloads) [MD5 checksum]
JkDefrag 3.12
Jun 06, 2007 - Bugfix for the X64 versions.
  Download JkDefrag v3.12de ( Downloads) [MD5 checksum]
JkDefrag 3.11
Jun 05, 2007 - Fixed a bug that caused files to be classified in the wrong zone, causing several problems.
- Fixed a bug where the list of files was not cleared between disks.
- Reduced the size where huge files are treated in segments to 1Gb to work around a potential bug in the defragmentation api.
For programmers:
- Added strings 48...57 to the array of textstrings.
  Download JkDefrag v3.11de ( Downloads) [MD5 checksum]
JkDefrag 3.10
Jun 04, 2007 - Fixed a bug that caused infinite loop in "Phase 2: Fixup"
JkDefrag 3.9 Jun 02, 2007 - Added optimization methods for sorting files on disk by name, size, last access, last change, and creation time.
- Reduced the number of steps from 6 to 3. Steps 2 to 5 are now combined into 1 phase.
- Added zoning to the Fast and Full optimization methods. Files are now placed in 3 zones with a free space between: directories, regular files, and space hogs.
- Added "-u" commandline option to add custom masks to the list of build-in SpaceHogs masks.
- Added a top-25 of largest files to the status report.
- Huge files (>4Gb) are now treated in segments.
- The versions now also detect if another version is running (windows, command line, screen saver).
- The Windows display idle timer (screen saver) and system idle timer (power saver) are disabled while JkDefrag is running.
- The sources are now standard .cpp and .h files
For programmers:
- Many changes in the sources.
- Added an example Visual project.
- Library sources are now compatible with the UNICODE compiler setting.
- Changes to facilitate multithreading.
- Renamed the sources. There is now a JkDefrag.cpp and JkDefrag.h file for easy inclusion into a project.
- Integrated the DefragInitialize function into the RunDefrag function.
- Changed the StopProcessing subroutine, it now accepts a timeout.
JkDefrag 3.8
Apr 20, 2007 - Fix for the "infinite worm" problem in the full optimisation.
- Added "-q" command line option to the Windows version to exit the program when it has finished.
- Changed the "-e" exclude option to support multiple wildcards. Previously a matching subdirectory would be skipped, now all files in those directories will be scanned.
- Changed the "-e" exclude option to support the excluding of complete disks.
- Fixed a problem in the screensaver that prevented it from finding alternate screensavers in the Windows directory.
- Added special exception for the "bcldr.bin" file used by the Best Crypt software by "".
- Fixed a buffer size calculation in the AnalyzeVolume subroutine. It allocated too much memory.
- Enlarged a buffer for writing to the log file. Very long filenames could result in an empty message.
- For library developers: added error message 47.
  Download JkDefrag v3.8de ( Downloads) [MD5 checksum]
JkDefrag 3.7
Feb 24, 2007 - Command line options are now accepted with and without a space between the option and the value, for example "-a3" and "-a 3".
- New "-e" command line option to exclude files/directories.
- New "-f" command line option to specify a size for the free area.
- New optimisation method 6: Analyze, defragment, and move to end of disk.
- New setting in the screensaver for the status bar not to display filenames or not to display the status bar altogether.
- The log file now shows a list of files in the status report that could not be moved, and a list of files that are (still) fragmented.
- The log file now shows the date only once at the top of the file, no loner on every line.
- Fixed a bug for the "-l" command line option that specifies a different location for the log file, where the Windows version of the program would create a log file at the default location containing only 1 line with "Starting, please wait...".
- Changed the screensaver's "Do not defrag if last run was less than" radio buttons into a pull-down list.
- Fixed a bug in the screensaver wrapper that made the preview window very slow.
- Fixed a bug in the screensaver wrapper that prevented screensaver with a space in their filename to run.
- Added code to the screensaver to prevent multiple copies running simultaneously.
- Added more code to the screensaver so it will not include itself in the list of alternate screensavers.
- Fixed a bug that would display the wrong name for screensavers that do not have a name.
- Removed the "2003" check when listing screensavers, the wrapper makes it possible to use non-standard screensavers.
- Added a test to quickly stop optimising when there is nothing more to do.
- Enlarged a buffer to speed up the fragment analysation.
- Small change in the code that reduces the number of fragments in huge files that cannot be fully defragmented.
- Changed the debug level of the "FSCTL_GET_RETRIEVAL_POINTERS error: Infinite loop" from zero to 2, so it won't always be displayed.
- Changed the debug level of the "Skipping gap, cannot fill: %I64d[%I64d]" from 3 to 5.
Changes in the DLL library:
- 2 extra parameters in the RunDefrag() call.
  Download JkDefrag v3.7de ( Downloads) [MD5 checksum]
JkDefrag 3.6
Jan 20, 2007 - Added a wrapper program to the screensaver. The alternate screensaver would not start for some users and this will hopefully fix the problem.
- Action 5 "Force together" added. This mode will move all files to the beginning of the disk, even if it means fragmenting them. It fills all the gaps with fragments taken from the highest files.
- A change in the code that determines if a file is fragmented, to reduce the number of files that are unnecessarily moved.
- Debug mode 5 has been split into mode 5 "Detailed gap-filling messages" and mode 6 "Detailed gap-finding messages".
- Fixed a bug that caused a log file to be created with a single line of text (the version info) when the "-l" command line option was used.
  Download JkDefrag v3.6de ( Downloads) [MD5 checksum]
JkDefrag 3.5
Jan 07, 2007 - Different method of starting the alternate screensaver, in the hope it will work for more users.
- Added the "%SystemRoot%" folder to scan for screensavers.
- Added a "2003" test to filter out non-standard screensavers.
- Added zero to the choices in the "do not defrag if last run was less than ... hours ago" in the screensaver configuration window.
- Bugfix: if more than one disk was specified on the command line, and the program was stopped by the user during any but the last disk, then the program would close the window, finish the current file, and start processing the next disk in the background. It will now close the window and finish the current file.
- Different method for determining the LCN of a file, in the hope it will fix a looping problem with compressed files during optimisation.
- Made a change in the method used to defragment huge files to reduce the number of midway fails, and make it faster.
- Added debug level 6 for detailed gap-finding messages.
- The "Analysing disk", "Starting defragmenter for", and "Finished" messages are now written to the log file.
- For DLL users: Added a parameter to the ShowMove() callback.
- For DLL users: extra message 46.
  Download JkDefrag v3.5de ( Downloads) [MD5 checksum]
JkDefrag 3.4 Dec 25, 2006 - The screensaver now has several settings. You can specify command line options just like with the other versions, so you can control which disks will be defragged; you can specify another screensaver to run when JkDefrag has finished; and you can select a number of hours to wait before running again.
- The screensaver now writes all the messages to a log file, just like the other versions.
- Added a bit of code that will find fragmented files at the end of a gap. It's not really necessary but makes certain warnings a bit less confusing.
JkDefrag 3.3 Dec 15, 2006 - Bugfix for the X64 versions. The program ran but couldn't find any files and therefore didn't do any work. I wish I had an X64 system to test new versions on! Anyone care to donate a computer?
- Added a couple more files to the internal dollar-list of special system files.
JkDefrag 3.2 Dec 13, 2006 - Fixed a bug in the DLL that caused the name of the RunDefrag() subroutine to be mangled.
- The distributions now include a 'doc' directory with a copy of the JkDefrag homepage.
- Moved the .bat file to compile the X64 version to the main directory.
- Small change in the code that rewrites input paths.
- Suppressed "could not get volume bitmap" message at the end of the optimisation phase.
JkDefrag 3.1
3.1 bugfix
Dec 07, 2006
Dec 08, 2006
- Managed to compile the screensaver and the DLL for X64.
- Fixed a divide-by-zero error when the window is minimized.
- Added a bit of code to get backup permissions, to gain access to special system files and folders such as the "System Volume Information" folder.
- Added a maximum-loop counter to the code that finds out the size and location of file fragments, as a preventative measure for a suspected bug in the Windows defragmentation API.
- The dollar special system files (such as "$Mft") are no longer analysed when the user has specified a file or a folder on the command line, but only for full disks.
- version string was incorrect (when running the program, "3.0" still appears at the top of the window)
JkDefrag 3.0 Dec 03, 2006 Changes between version 2.27a and version 3.0:
- I've changed the name from plain old "defrag" into "JkDefrag". The old name was really no name at all and made talking about it a little bit awkward. The "jk" are my initials. The change in name is reflected in the names of the executables and the sources, for example "windefrag.exe" is now "JkDefrag.exe".
- The program and it's sources are now released under the GNU General Public License, and the DLL library under the GNU Lesser general public license. Previously the program was copyrighted freeware with published sources.
- New to this release is the screen saver. You can use it just like any other screensaver, go to lunch and come back to a fully optimised harddisk.
- Big changes in the DLL to give programmers access to a lot more data and to make the library completely thread-safe. The new library is not downwards compatible, although the structure and calls resemble the old library.
Changes in the Windows version:
- Name changed from "windefrag.exe" into "JkDefrag.exe".
- Starts in a resizable window instead of full screen.
- Shows a percentage counter of how much is left to do.
Changes in the command line version:
- Name changed from "defrag.exe" into "JkDefragCmd.exe".
- Prints a small report with some numbers when it has finished processing a disk. The windows version saves the report in the log file, but does not show the numbers on the screen.
- Options are now processed before processing items.
- Ultra long paths are now supported. Previously the program was limited to a maximum path length of 259 characters, as advised by Microsoft®, but there are cases where pathnames can grow longer than that. Most Microsoft® programs cannot handle ultra long paths.
- Switched to Unicode wide-character strings and system calls for filenames and paths, instead of 8-bit ANSI.
- Replaced the command line options "o", "o1", and "o2" with the "a" options. It is now possible to run the defragger in analyze-only mode.
- It is now possible to specify individual files on the command line.
- It is now possible to defragment/optimise unmounted volumes by specifying them explicitly on the command line.
- Changed the way invisible system files are colorized.
- Invisible system files can now be defragged/optimised when the utility is started from a read-only medium such as cd-rom.
- Fixed a bug that could cause the program to loop when moving files using strategy 2.
- Moved the already-running test from the library to the individual programs, so that the library can now process multiple disks simultaneously.
(Win)Defrag 2.27b
(bugfix of 2.27a)
Nov 22, 2006 - In-between maintenance release to fix a compilation bug in the X64 executables.
- No changes in the regular Windows binaries, and 1 character changed in the sources.
(Win)Defrag 2.27(a) Nov 16, 2006 - I have upgraded from "Microsoft® Visual C++ Toolkit 2003" to "Visual C++ 2005 Express Edition", and from "Microsoft® Platform SDK for Windows Server 2003 SP1" to "Microsoft® Platform SDK for Windows Server 2003 R2". It required some minor changes in the sources.
- I've included a small "make.bat" in the sources to compile the defragger, and a "x64/make.bat" to compile the x64 versions.
(Win)Defrag 2.26 Nov 07, 2006 - The defragger can now partially defragment. When it encounters a huge file for which there is no gap big enough, then it will defragment as much of the file as it can. Previously it would just skip the file.
- Added a command line option "-s" to slow down the defragger.
- The program will now refuse to start if another instance is already running.
(Win)Defrag 2.25 Oct 23, 2006 - Rewritten the code that draws (colorizes) files on the screen.
- Reorganised the debug messages.
- Fixed a bug that could cause the program to hang on startup.
- Changes that prepare for future partial defrag of huge files.
- Different strategy to retry moving a file.
- Went back to free space and MFT optimisation of version 2.23.
(Win)Defrag 2.24 Oct 13, 2006 - Further improvements in the algorithms to optimise the directories, the scratch-area, and the files in the MFT-zone.
(Win)Defrag 2.23 Oct 10, 2006 - Added better algorithms to optimize directories and to keep track of the scratch-area.
- Added moving of files in the MFT zone (Master File Table) back to normal disk space in the event of a full disk ("phase 3").
(Win)Defrag 2.22 Aug 22, 2006 No history recorded.
(Win)Defrag 2.20 Jun 17, 2006 No history recorded.
(Win)Defrag 2.19 May 28, 2006 ---
(Win)Defrag 2.18 May 23, 2006 ---
(Win)Defrag 2.17 May 21, 2006 ---
(Win)Defrag 2.16 May 16, 2006 ---
(Win)Defrag 2.15 May 8, 2006 ---
(Win)Defrag 2.14 May 2, 2006 ---
(Win)Defrag 2.12 Mar 15, 2006 ---
(Win)Defrag 2.11 Feb 04, 2006 ---
(Win)Defrag 2.10 Jan 25, 2006 ---
(Win)Defrag 2.9 Jan 16, 2006 ---
(Win)Defrag 2.8 Nov 25, 2005 ---
(Win)Defrag 2.7 Nov 04, 2005 ---
(Win)Defrag 2.6 Sep 14, 2005 - Changed colors of WinDefrag
- Display of WinDefrag turned 90° (from vertical to horizontal)
(Win)Defrag 2.5 Aug 04, 2005 - Changed internal name of WinDefrag from defrag to WinDefrag
(Win)Defrag 2.4 Apr 19, 2005 ---
(Win)Defrag 2.3 Mar 19, 2005 ---
(Win)Defrag 2.2 Mar 17, 2005 - Added WinDefrag
Defrag 2.0 Feb 25, 2005 ---
Defrag 1.0 Jun 07, 2004 ---
Remark: Versions 2.1; 2.13; 2.21; 3.13 not released

     © 2006 - 2009 by Markus Hörl from