Desktop Info by Glenn Delahoy (C) Copyright 2005-2010 All rights reserved Description ----------- This little application displays real-time system information on your desktop. Looks like wallpaper but stays resident in memory. Perfect for quick identification and walk-by monitoring of production or test server farms. Everything is customisable. Usage ----- Just run it. You can kill it via the right click context menu or from Task Manager. Open the desktopinfo.ini file and adjust each item in the items section to control visibility, refresh times, colours etc. The display updates itself automatically when you save the ini file. Options ------- There is no configuration program. Options are set by modifying the ini file in a text editor such as Notepad. The included ini file shows all the available options. Display values are relative to the primary display so if you have a dual monitor display, you may need to specify negative values for any of these depending on the display arrangement. Here are the rules for the position options: if left is specified, it is left aligned if right is specified, it is right aligned if neither left or right, it is left if both are specified, it is left if top is specified, it is top aligned if bottom is specified, it is bottom aligned if neither top or bottom, it is top if both are specified, it is top if font size is not specified, it is 8 if font size is less than 6, it is 8 if width is not specified, it is half the primary monitor width height is always the number of items ssfontsize The font size in screen saver mode. formcolor Used with the /f command line option. contextmenu Enables/disables the right click context menu. offset Controls the display offset of the network adapter, fixed disk and printer sub-items. networkadapterfilter A comma delimited list of network adapters to *exclude* from the display. See below. language File name containing alternate display text for the items. See below. msnstatus Enables option to update msn status. See below. Colours ------- Colours are specified as a six character bgr (reverse rgb) hexadecimal number. The first two characters represent the level of blue, the second represent the level of green, the third two represent the level of red. Each element has a range of 00-ff (0-255). ff0000 is blue, 00ff00 is green, 0000ff is red. ffffff is white (all colour elements at maximum), 000000 is black (all colour elements are off). Items ----- The items section in the ini file controls the state of each info item. Each item contains a comma delimited list of values in the following order: active : a value of 0 is off, 1 is on interval : a value in seconds where 0 means never refresh colour : a bgr value as defined above chart : chart type to display where 0 = no chart, 1 = bar chart, 2 = line chart. See below for items that have charts. threshold : the value where the item text will change colour threshold colour : the new text colour when the value reaches the threshold value An example is DATETIME=1,1,FFFFFF where the datetime item is active, refreshed every second and the colour is white. CPU=1,2,0000FF,1 is active, refreshed every two seconds, the colour is red and chart number 1 is displayed. DIRECTX=0,0,0000FF is inactive and nothing else matters. In order to specify a particular value for an item you must specify all preceding values. For example, to specify a colour, you must specify, active and interval, in order to specify a threshold value you must specify the active, interval, colour and chart. If an item does not have a chart, the chart value is ignored. If you don't specify an item at all, it will assume internal default values. Some items such as network adapter, fixed disk and printer control all items of that class. For example if you switch on fixed disk, all detected fixed disks are displayed including most usb disks. The display is refreshed whenever there is a hardware change notification for fixed disks or network adapters. Charts ------ Where an item has two values such as NETPACKETSRATE and DISKIO, the bar chart value will be the sum of the two values. On line charts the first value takes the colour configured for that item, the second value takes a standard brown/orange/tan kind of colour. The following items have both bar and line charts available: CPU TOPPROCESSCPU PHYSICALRAM VIRTUALMEMORY PAGEFILE NETCONNECTIONS NETPACKETSRATE FIXEDDISK DISKIO Thresholds ---------- Items that display values may be configured to change colour when that item reaches a given value. The following items can have threshold values: Item Threshold ---- --------- CPU percent TOPPROCESSCPU percent TOPPROCESSMEM MB PROCESSCOUNT count PHYSICALRAM percent VIRTUALMEMORY percent PAGEFILE percent NETCONNECTIONS count NETPACKETSRATE rate of either value FIXEDDISK percent DISKIO rate of either value DISKQUEUE count TSSESSIONS count UNREADMAIL count Numbers ------- Several of the entries show two numbers. For example, the physical ram might show something like 528MB / 1024MB (51% used). The first number is the amount used, the second is the total. So in this case it shows 528MB used out of a total of 1024MB which equates to 51% used. The same is true for virtual memory, page file and fixed disks. Files ----- Desktop Info can monitor files and folders for changes to size, write time or version number. Create a new section in the Ini file called [files]. Each entry consists of "name=value". The name is for display and can be anything you choose to identify the entry. The value is divided into four sections separated by commas: the first section is the file or folder name, the second section is the monitor type, the third section is refresh interval, the fourth section is the colour. The four monitor types are text, size, time and version. The text type will display the first line of the given text file when the last write time changes. The size type will display the file size when the size changes. The time type will display the last write and access times when either changes. The version type will display the file version resource string when the file changes. This monitor will work for local and network files and folders. If the file or directory does not exist, the display will show "". The text type might be useful for monitoring semaphore or progress files created by batch processes. The following example displays the text in the given file. [files] status=c:\semaphore.txt,text,10,FF0000 Registry -------- Desktop Info can monitor specific registry keys or values for changes. If you specify a key you can also choose to monitor just that key or the entire tree starting at that key. Create a new section in the Ini file called [registry]. An entry consists of "name=value". The name is for display and can be anything you choose to identify the entry. The value is divided into three sections separated by commas: the first section is the registry key (and value), the second section is the word 'tree' if you specify a key and want to monitor the whole tree, the third section is the colour. No refresh time is required. The following example will monitor the Run keys. [registry] machine run=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,tree,6578AB user run=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,tree,6570FF The following example will monitor a specific value. [registry] sound man=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\SoundMan,notree,44FF44 Event Logs ---------- Desktop Info can monitor specific event logs for changes. Create a new section in the Ini file called [eventlogs]. An entry consists of "name=value". The name is for display and can be anything you choose to identify the entry. The value is divided into three sections separated by commas: the first section is the event log name, the second section is the refresh interval and the third section is the colour. The following example will monitor the application event log. [eventlogs] Application Events=Application,20,339999 Network Adapter Filter ---------------------- The ini file [options] section may contain a "networkadapterfilter" entry which contains a comma delimited list of network adapters to exclude from the display. networkadapterfilter=usb exclude all network adapters that have "usb" in the description networkadapterfilter=usb,vmware exclude all network adapters that have "usb" or "vmware" in the description. Language File ------------- The ini file [options] section may contain a "language" entry which points to an additional configuration file in the application directory. It contains a duplicate list of the items found in the desktop.ini file. Each item is a name=value pair where the name matches the id in the desktop.ini file and the value is any string you want to use on the display for that item. The NETWORKADAPTER, FIXEDDISK and PRINTER items may contain %1 which will be replaced by each item number. TIMEZONE=Slide Zone HOST=Machine Name USER=Current User FIXEDDISK=Hard Disk %1 Msn Status / Personal Message ----------------------------- The ini file [options] section may contain a "msnstatus" entry which enables the option to update your Live Messenger status / personal message with any current alarms. This is still considered experimental and your mileage will vary. To enable msnstatus, set the value to some number above 10 indicating how often to update the status in seconds. Alarms are buffered and the oldest will be sent next. That is, first in first out. If there are no alarms the message is removed and your Messenger status / personal message will revert to its normal message. Don't set the value to less than 10 seconds as it will probably be ignored. Your Live Messenger must be connected and configured to "Show what I'm listening to". This has been tested on Windows Live Messenger 2009 (14.0.8089.726) and Miranda v0.8.13 but should work with any messenger that implements the MsnMsgrUIManager interface. Messenger insists on showing the music icon; still working on that. Show Desktop ------------ The Show Desktop button on the Windows Quick Launch toolbar makes Desktop Info invisible, there's nothing I can do about that. Instead, add a Desktop Info icon to your Quick Launch toolbar. When you run it, Desktop Info will look to see if it's running already. If it is, it will attempt to minimise enough applications to make itself visible. This makes it sort of an alternative to Show Desktop. The obscuring windows may choose to ignore the minimise message or do other bizarre things which are outside of my control. Command Line Options -------------------- The following command line options may be used: /a Show all items regardless of ini file settings. /f Show a visible form. This tells Desktop Info to appear like a regular application allowing you to move it to the background or foreground and drag it around like any other application. Context Menu ------------ To get the context menu to appear in transparent mode, you have to click on a chart or part of the text which may take a few tries. The context menu can be disabled by setting the 'contextmenu' item in the 'options' section to '0'; Show Desktop In default mode this minimises enough applications to make Desktop Info visible. See above. Refresh This forces a full refresh of the display and all items. Configuration Opens the desktopinfo.ini file with the default text editor. When you edit and save this file, Desktop Info will detect the change and load the new configuration. Read Me Opens the readme.txt file with the default text editor. Quit Closes the Desktop Info application. Screen Saver ------------ Desktop Info can be used as a screen saver. Make a copy of DesktopInfo.exe and rename it to DesktopInfo.scr. Right click on this file and select Install. In the ini file, the "ssfontsize" option controls the font size when running as a screen saver. You can run the exe and the screen saver at the same time. Miscellaneous ------------- The application is set to idle priority class which means it will only take up cpu time when no other process requires it. If some other application is going flat out 100% cpu, the Desktop Info display may not update right away. Fixed disks smaller than 3GB in size will be displayed as MB. This is primarily to avoid the rounding error of going to gigabytes. The main CPU item shows percentage of all cpus in the system. This means it will always show 0-100% regardless of how many cpus there are. The top process cpu item shows the percentage per cpu. This means it may show more than 100%. The Windows ClearType system makes a mess of the transparent text. The only solution I've found is to use a fixed width font such as Courier, Fixedsys, MS Sans Serif, System. Windows Platforms ----------------- Desktop Info has been tested on the following Windows platforms: XP Pro (32 bit) version 2002 service pack 2 XP Pro (32 bit) version 2002 service pack 3 XP Pro (64 bit) version 2003 service pack 2 Vista (32 bit) business service pack 1 Server 2000 (32 bit) service pack 4 Server 2003 (64 bit) service pack 2 Server 2008 (32 bit) standard service pack 1 Server 2008 (64 bit) service pack 1 * * OS Name shows XP (?) -------------------------------------------------------------- Release Notes Version v0.10 ------------- Limited distribution test release. Version v0.11 ------------- Change 1: Fixed the nasty flicker some systems were getting. Change 2: Fixed the odd characters after the domain name. Change 3: Less full refreshes means less cpu time. Change 4: Fixed disk figures for very small drives. Version v0.20 ------------- Change 1: Added time zone info. Change 2: Some optimisations. Change 3: Added refresh intervals. Change 4: Added domain controller info. Change 5: Added event logs. Version v0.21 ------------- Change 1: Added terminal server session count. Change 2: Fixed some stuff in event logs. Version v0.22 ------------- Change 1: Added DirectX version. Change 2: Adjusted domain controller. I can't directly test this one. Change 3: Added network packet stats and rates. Change 4: Added network connection count. Change 5: Added double click refresh. Version v0.30 ------------- Change 1: Fixed a bunch of memory issues. Change 2: Fixed Terminal Services sessions and added session list. Change 3: Added auto font size. Change 4: Added 'missing ini' default values. Change 5: Implemented proper ini file monitoring. Change 6: Added screen info. Change 7: Fixed display for 256 colour remote desktop. Change 8: Added files monitor options. Version v0.31 ------------- Change 1: Added Up Time. Change 2: Added support for cpu times for Windows 2000. Change 3: Fixed Domain Controller Change 4: Fixed multiples of same file watch type bug. Change 5: Fixed memory sizes over 2GB. Version v0.40 ------------- Change 1: Added top process cpu time. Change 2: Added top process memory usage. Change 3: Added file version watch type. Change 4: Added registry watch types. Change 5: Added cpu count. Change 6: Additional checking for terminal sessions. Version v0.41 ------------- Change 1: Added unread mail. Change 2: Added formright and formbottom options. Version v0.42 ------------- Change 1: Increased fixed disks to eight. Change 2: Added multiple ip addresses. Change 3: Fixed problem with missing ini file. Change 4: Split network gateway entries to separate lines. Change 5: Added percentages to memory and disk displays. Version v0.50 ------------- Change 1: I think I've nailed the show desktop thing. Version v0.51 ------------- Change 1: Fixed problem with some USB drives. Change 2: Solved refresh problem when removable drives come and go. Version v0.60 ------------- Change 1: Reworked the file monitoring so it works on local and remote files and folders. You'll need to adjust your ini file entries as noted above. Change 2: Reworked the registry monitoring to merge the two types. You'll need to adjust your ini file entries as noted above. Change 3: Added the /f command line option to show a visible, moveable form. Change 4: Added the /a command line option to show all items regardless of the ini file settings. Change 5: Added right click context menu. Change 6: The network entries are grouped so all information for each adapter is together. Change 7: Tested on a variety of Windows platforms. The results are noted above. Version v0.70 ------------- Change 1: Added Disk IO on fixed logical drives. Change 2: Added disk queue length. Change 3: Changed ini file format as noted above. Will continue to read the old format while the Intervals section exists. Change 4: Added item colours. Change 5: Fixed bug in Top Process Cpu Change 6: Fixed bug in cpu times. Change 7: Added charts. Change 8: Added thresholds. Change 9: Added exception handlers to process enumerators. Version v0.71 ------------- Change 1: Fixed an access violation in the disk io routines. Change 2: Fixed refresh when disks come and go. Version v0.80 ------------- Change 1: Added colours to the file and registry monitors. Change 2: Added option to disable the context menu. Change 3: Added option to toggle the indents on disks/networks. Change 4: Modified registry monitor to optionally show values. Change 5: Registry item names are shown as found in the ini file. Change 6: Added event log monitor and removed redundant event logs from the items. Version v0.81 ------------- Change 1: Improved disk change handling. Change 2: Fixed file monitor where file/directory does not exist or disappears or reappears. Change 3: Fixed divide by zero error in fixed disks. Version v0.90 ------------- Change 1: Refactored the chart display code to be more useful and added charts to more items. See the charts section for more information. Change 2: Refactored form display code. Options have changed accordingly. Auto form width, auto font size and font color are gone. You should make sure every item has the colour set. See the options section for more information. Change 3: Rewritten all the network adapter stuff. Added change handling. Added filtering. See the options section for more information. Change 4: Prevent form from resetting it's position after it is dragged. Change 5: Rewrote the bar chart. Change 6: Fixed problem with event log monitor thread not terminating correctly. Change 7: Added the following items: printer, printerstatus, displaycontroller, bios, motherboard, workgroup. Printers is work in progress. Change 8: Added language file. Change 9: Added screen saver option. Change 10: Added msnstatus option. Change 11: Changed method for retrieving service pack. -------------------------------------------------------------- Comments/suggestions to: support@delahoy.com http://www.glenn.delahoy.com