CleanMem By PcWinTech.com
Works on Windows 2000, XP, 2003, Vista, 2008, 7, 2012, 8 & 8.1 - 32bit & 64bit
Multiple code changes and improvements.
Small bug fixes to the gui of the mini monitor.
Cleaning of the File Cache is now disabled by default. There are times where cleaning it helps improve performance and sometimes it doesn't depending what the system is doing at the time. So best to let the user decide to have it enabled.
Added a new menu option to the mini monitor to manually clean the file cache. This new option is part of the free and pro versions :-)
CleanMem and all of its exe's are now terminal services aware.
Bug fix. When you had more than one mini monitor running on the machine you would get an error that the port was in use. This is because the other mini monitor was using it. I have fixed it so this error doesn't pop up :-)
Added a new remote feature. This feature is for pro versions. You can now view the memory and stats from the mini monitor remotely. You can also run CleanMem from the remote viewer. Of course the mini monitor must be running on the remote machine to pull the stats. This works both on local networks and over the internet. You will need to setup a port forwarding rule in your router to view over the internet. Port forwarding guides and help are on PcWinTech.com
Added a new screen saver that will pull the data from the mini monitor and display it on the screen saver. This is for both free and pro versions. The mini monitor will allow pulling of stats from both the free and pro versions on the local host 127.0.0.1. The free version will only pull the stats available in the free version.
Added a remote viewer program as well. You can use this to view the mini monitor remotely.
I have included the source code for both the screen saver and the remote viewer, both in visual basic 6. This way others can build more and better screen savers and remote viewers for the mini monitor. Please let me know if you build one and I will link to it on my site.
Per user request I have added a global hotkey to reapply the on top setting. This is for when another program calls the windows api to take the top most order (Puts the window on top of all others) Now a person can use a hot key to put the mini monitor back on top without having to go back into the settings and turn it off and back on.
Per user request I have added a "Pause Advanced Monitor" option to the right click menu of the tray icon in the mini monitor. When you click it, it will pause any of the advanced monitors that are enabled and it will change the text in the tray icon to "||" to show it is paused. This setting isn't saved so if you restart the mini monitor for any reason it will run as normal.
New button control code, the old code for the buttons caused the program to crash on some machines.
Code tweaks and improvements.
Added a new check for new version feature.
Lots of GUI changes, should make the program more stable.
Added better support for the window positions of the program. On some users systems, if they had another program running that worked with program windows, it would cause CleanMem to save the window positions off screen, or if a user lowered their screen resolution and the old position would now be off screen. The program now checks the current screen resolution and brings the windows back on screen. I made sure this supports people with multiple monitors :-)
Fixed a few small bugs.
Added some control dll's to have CleanMem use instead of the ones on the users systems. On a few rare systems, if the users theme controls had the wrong or mismatched versions then CleanMem or their computer would crash. I have put the correct files with CleanMem and it will use those now instead. I am hoping this will fix the crash problems for those few people.
Minor bug fixes.
(All changes in this version are for both Free & Pro versions.)
Moved system up time from the bottom of the window to the top menu. There a user can now decide how the program will pull the system up time. Default is GetTickCount API (49 Days Max) the other is by the Windows Performance Counters (No Max). The reason for the 2 options is for users who have disabled their performance counters and do not wish to turn them back on.
GetTickCount counts since system boot and includes suspends/hibernation time as well, but has the limit of going up to 49 days.
The performance counter only counts as windows is running and doesn't during suspends/hibernation, but doesn't have the 49 day limit.
Added new option to disable the bar fill graphic. This is for the users who want the monitor to be just pure text. Such as when using blending mode into the desktop.
Added new compact mode for the mini monitor. This will hide the text and the make the bar 50% smaller. Making a very nice small monitor that stays out of the way.
Add some pre made compact bar graphics to the setup.
Added new mini monitor start with windows options. You can now set the mini monitor to run at system startup for the current user or all users.
Fix system up time monitor bug. The mini monitor showed the system up time via the GetTickCount API. But this had a problem, it could only go as high as 49 days. I have since changed the code to pull the system up time from the performance monitor in Windows. Now there should be no limit.
Added "Reset Window Positions" option to context menu.
Multiple GUI tweaks and fixes.
Fixed minor bug where the mini monitor wouldn't hold its startup position in some cases.
Program now remembers the screen position of the settings windows and others. The reset mini monitor position will also reset these windows as well.
Window positions are now saved under the Current User Reg keys. This has multiple benefits. If a person runs the mini monitor from a thumb drive and on multiple computers, the position will be saved on each computer instead of the ini file. This also lets different users on the same system have the monitor in different positions than the other users.
Fixed bug where the Page File information on the Memory Info Window didn't detect on Windows 7.
Page file info on the memory info window has been updated to pull better information. Such as actual current usage of the page file on the disk.
Fixed bug where the mini monitor didn't always exit & close.
Fixed rare crashes on some systems when trying to exit the mini monitor or open its menu.
Added minimize button to the settings windows.
Changed the default task scheduler run time for CleanMem from 30 min to 15 min.
Fixed the 256 char limit for the setting file. The limit is now 4096 chars.
Performance enhancement to CleanMem.exe. It will now only load the lists if that list is enabled. Before it loaded them every time.
Changed the API used to pull system stats.
The page file info shown in Windows XP and 2003 task manager is actually Commit Total. To stay with proper naming I have changed the name in the program from page file to Commit Total.
The mini monitor would format the numbers down to 3 decimal points. Example: 1.999 GB. Due to the new info the mini monitor can show in the text fields I have lowered it to 2 decimal points. Example: 1.99 GB. This is to better fit the new information in the amount of available space. This will also round the numbers, so 1.999 will become 2.00.
Changed the default bar fill graphic.
Changed some of the default settings for the mini monitor. Such as bar fill text color and show border. These of course are still changeable by the user.
The right click menu that is on the system tray icon is now accessible from the main settings window as well.
Removed Clean Memory button from the mini monitor. Users can right click on the mini monitor for the clean memory option. With the button gone users can now set the position of the text on the monitor. Left, Center, Right
Added a online help file link to the menu. This will go to the guide on how to use CleanMem and the Mini Monitor.
When you first install CleanMem you no longer have to reboot before the task scheduler will start running CleanMem.
On Windows Vista & 7 when the UAC is enabled the tray icon would not show if explorer.exe was restarted. This has now been fixed.
New Free features:
Allow to hide text in mini monitor bar
Have a reset mini monitor position button
Add randomize colors button for mini monitor
Add color presets for the mini monitor
Show system up time in the mini monitor settings window.
Users can set to have the mini monitors corners rounded or not.
Users can now set the text alignment for the 2 text fields on the mini monitor. Left, Center & Right.
New Pro features:
Advanced Monitor Rules: (The user can set these rules for any process they like (Not on protected processes of course)).
Clean the memory on a specific process when it hits a user set memory level. (Example: Firefox hits 150MB) The mini monitor cleans the memory instead of calling CleanMem. One less program to run :-)
Kill a program if it hits a certain amount of memory.
Auto set process priority on a process.
Auto clean the system file cache when it reaches a set size.
Set how often the advanced monitor rules will run.
Auto run CleanMem when system hits a user specified % of memory used.
Great details on running processes.
Allow users to choose a picture (jpg, bmp, gif) for the mini monitor bar.
Allow user to choose what text shows on the mini monitor Example: Total memory, used memory, free memory, page file commit, file cache size, system uptime and more.
Show current file cache info.
Show extended memory usage stats.
Major update. Make sure to uninstall any old versions of CleanMem first.
CleanMem is now 3.5x faster. CleanMem use to take 3.5 sec to do its job and close. It now takes 1 sec.
Update to the mini monitor to show actual percentage of memory use. This shows up in the tooltip text of the system tray icon. Since the tray icon can only fit 2 chars the percentage is rounded. But in the tooltip it will show the current. Example: 35.635%
The system tray icon only changes when the percentage changes. When a user would update the colors of the try icon the change wouldn't happen till then. Now when a user changes anything for the system tray icon it will update immediately.
The system tray icon didn't render properly if your system was set to less than True Color (32 bit) This has now been fixed.
Added global hotkey support to the mini monitor. The user can now set what keys to hit to run CleanMem.
Added a GUI for the settings of CleanMem. CleanMem now stores all settings in one ini file instead of multiple text files.
Minor tweaks and fine tuning to the mini monitor.
CleanMem setup now auto detects if a system is 32 or 64 bit and selects the correct install option during setup.
CleanMem setup support silent installs.
Fixed bug where text in the system tray icon wasn't center if the user had a higher DPI set. Thanks goes to this user for bringing this bug to my attention http://forums.pcwintech.com/index.php/topic,1642.0.html
New features per user request. I have removed all 101 static tray icons from the program. The user can now set the colors and font for the tray icon to their liking :-)
Small performance improvement, instead of the tray icon updating every 1 sec it only updates when it needs to.
The total processes on the mini monitor just wasn't cutting it. First the API would cause 1,100 page faults per sec. Then I switched it to use WMI to pull the process count. This lowered the page faults to 14. But turned out it also caused the WMI service to be at 1 - 2% all the time. This just wont do! The point of a monitor is to do its job without taking anything from the system.
I have dropped total processes from the monitor and replaced it with current page file usage. The monitor now has 0 page faults and 0 cpu :-)
I has also added a few more features. You can now hide the totals and button on the monitor, making it even smaller by only showing the bar.
You can now right click anywhere on the mini monitor to pull up the menu. This is useful if you hide the Clean Memory button and still want to run it.
Fixed a bug where the colors where not being set at startup of the mini monitor.
When using the bar fill picture the text would stay black. Per user request the text will now match the bar fill text color.
Code improvement on the mini monitor. The code to pull the number of running processes was causing a high amount of page faults. While page faults do not hurt the system http://en.wikipedia.org/wiki/Page_fault
It still bugged me that the Windows API used to get the process count was causing 1100 page faults every time it ran, which was every 1 sec. I have since used a different api and code and dropped the page faults down to 14 instead of 1100 :-)
Big thanks to this user http://forums.pcwintech.com/index.php/topic,1605.0.html who brought this to my attention.
Added a new CleanMem Mini Monitor. This runs separate from CleanMem. The mini monitor allows a user to keep an eye on current memory usage and clean the system memory with one click of a button. The program calls CleanMem to do its job. This new mini monitor is an addition to CleanMem, not a replacement. CleanMem still installs and runs in the back ground via the task scheduler just as it always has.
Updated the log file output per user request. http://forums.pcwintech.com/index.php/topic,1350.0.html
Removed the VB6 SP6 runtime files from the setup file. These files are no longer needed on newer systems and will help reduce the setup size.
I have added a new logging feature. By default this is turned off.
You can now have CleanMem log the memory usage of a process before CleanMem cleans it and after to see how a process is doing.
Check the cleanmem_log_settings.txt for more details.
small bug fix where the only list wasn't working.
Added the option to disable the new clear file cache in the ignore list.
You can disable the clear file cache feature I added in v1.4.0
Simply add file cache to the ignore list
v1.4.0 Cleanmem now also clears the file cache of the system. The same way CacheSet does ( http://technet.microsoft.com/en-us/sysinternals/bb897561.aspx )
I made this update after I noticed some things on my system. Every time I played a heavy game or did a full drive backup my system would be a total snail afterwards.
I checked the memory usage, cpu and everything, nothing was being used up. But every time I even so much as tried to open a window it would crawl and I would see my hard drive light fully light up for a good 5+ sec.
So I new the problem had to be with the hard drive in some way. After doing a ton of research I came across cacheSet. When I used it I had seen my cache was over a few hundred MB's!
As soon as I cleared it the system came back and the sluggish feel was gone. After researching why this happens it turns out when the cache becomes to full or large the hard drive is used MUCH more than normal, thus why everything was slowing down and my hard drive was working over time.
The file cache is stored into memory, so when it doesn't clear itself that's also wasted memory. so when it is cleared that memory comes back to the system as well.
So with this update no more sluggish system after heavy file transfers and gaming :-)
v1.3.0 Added a only list to give the user more control, if a person wishes to have Cleanmem only clean certain processes all they have to do is add them to the list. If the list is blank Cleanmem will clean all processes, of course skipping ones in the ignore list.
v1.2.1 Update Notes: I have updated the program setup to make the scheduled tasks better. On some machines they weren't running and required the user to simply reset the settings for it to work. Hopefully this is now taken care of.
V1.2 Update Notes: Per user request I have added an ignore list that users can edit. This ignore list will tell cleanmem to skip any process that is listed in the list. The user who requested this wishes to run cleanmem on all their servers but they have a process they don't like touched, by anything. So to make them feel better and at ease I have added this option in. - ShaneV1.1 Update Notes: I removed the program from running as a service which will stop the event viewer errors and also I redid the code making it more efficient and about half the size.