SystemInfo 3.0

TC Lister extensions
------------------------
The TC lister's plugins are loaded automatically by the lister when the loaded file has one of the foreseen extensions and place a proper viewer child window in the mutimedia format of the Lister (to view the plugin in action you have to select multimedia file format)

[SystemInfo.wlx]
This plugin retrieves a lot of system informations through different sources and ways (more that 15). 
It is associated through dummy files with .systeminfo extension (there's just an example here), and to the file coming from the "Control Panel" File plugin (http://wincmd.ru/files/wfx_cpl_10.zip), called "System.ControlPanel". In this latter case, instead of opening the default view of the FileSystem plugin, it opens the Lister Plugin result.
To see a complete list of what this plugin can display take a look at the file ObtainedInformations.txt in this archive
The same program is also included in a standalone version, which I think could be useful for remote assistance to know customers system configurations.
This wlx reacts to files with these names: "dummy.systeminfo", My Computer", "System.ControlPanel", "System.000"

[Note on Log reports] the report of detailed system log events behaves differently based on windows systems
 on Win NT/2000/XP reports uptime, reboot history, failures, bluescreens history, application failure history and so on. This functions are made using the Microsoft uptime.exe that is wired inside the application as resoure and written to disk whenever it has to be used, and after deleted.
 on Win9x/ME reports uptime only, but with a maximum of 49,7 days (the system doesn't reports more than this, because of DWORD: 2^32 milliseconds=49,7 days= 49 days, 17 hours, 2 minutes, 47 secs), after this the system counter restart from 0.

[Note on CPU Flags] For those of you who are thinking of what are those CPU flags found by this tool, see here http://grafi.ii.pw.edu.pl/gbm/x86/cpuid.html

Installation
-------------
To install add these two lines to your wincmd.ini

1) If you're using TC 551, use it's Lister plugin interface otherwise you can manually configure your TotalCommander wincmd.ini file in this way. Add a line such as the one below, adjusting your path and the ordinal number (here 0)

[ListerPlugins]
0=D:\wincmd\LS-plugin\SystemInfo.wlx

where you'll have to adjust the path in the above example to your real one and the number (it's a simple numerical order value, no bit-wise flags inside it as the packer or file-system extensions do).

2) Add a button to your toolbar with the following command "cm_List d:\wincmd\plugins\dummy.systeminfo", obviously you have to adjust the path to the place where you actually have the dummy.systeminfo file. This action allows the button to open that file and so call the plugin automatically. As icon use one of those inside systeminfo.wlx 

3) for the first time the plugin proposes a valid path to .ini totalcommander file, to be used for its systeminfo.ini file. After the first launch change this file as you want. In the archive there's an already done file you can copy where the .wlx file will be.

Files in this archive
-----------------------
 dummy.systeminfo - a dummy file to activate lister plugin, see above
 ObtainedInformations.txt - what this lister plugin gives back about your system
 readme.txt - this file ^__^
 SystemInfo.wlx - the artwork matter of this whole archive
 CorrectKeys.reg - an example of correct regitry entries if you have problems. Before inserting in the registry adjust to your real installation path the InstallDir key.
 systeminfo.ini - an already proposed ini setting file to be copyed where you place the .wlx. If you want the wlx creates a new one if there's not another already existing.
 Configuration.jpg - a shapshot of the button configuration proposed to be used.

Acknowledgements
------------------------
To write this plugin I used some code from other people:
- Christian Ghisler with his demo plugin
- Tien Tran Ngoc, for his System Information Class, http://codeguru.earthweb.com/system/sysinfo.html
- Paul Wendt for his oroginal SysInfo Classes, http://www.codeguru.com/system/SysInfo--.html
- Lynn McGuire for his original code of Hard-Disk Information APIs, http://www.codeguru.com/system/DiskId32.shtml
- Stas Khirman for his original code of MAC Classes, http://codeguru.earthweb.com/network/ViewNIC.html
- Microsoft people for their uptime.exe utility, http://www.microsoft.com/ntserver/nts/downloads/management/uptime/default.asp
All these codes have been heavily modified and extended, but helped me to not strat from scratch!


Bug Report
--------------
Report any bug to zapped@libero.it with a mail containing the name of the extension such as following
"[SystemInfo] subject goes here" to allow mine automatic filters to go in action ^__^

History
---------
1.0 Dec 2002 - first public release

1.1 Dec 2002 - 
	+ added icons inside the wlx, 
	+ updated the installation instructions 
	- fixed a little buggie

2.0 Dec 2002 
	+ added support for a .ini file with font and size (default values for first time running -.ini not already present- are taken from wincmd.ini [Lister] section
	+ added, now takes tabwidth from wincmd.ini. The file location is automatically taken
	+ improved a lot WLX stability. 
	+ TNTSI.DLL now can be where you place the wlx file.
	- fixed Control Panel File System integration, now should work.

2.1 Dec 2002
	- fixed wrong search in the registry. Now searches TC registry keys in either one of these keys \HLM\SOFTWARE\Ghisler\Total Commander, \HCU\SOFTWARE\Ghisler\Total Commander, HCU\SOFTWARE\Ghisler\Windows Commander.
	- fixed now error messages are more explanatory than before and I distinguished between errors and warnings
	+ added the file CorrectKeys.reg

2.2 Dec 2002
	+ added now searching correctly signal if nothing has found

2.3 Dec 2002
	+ fixed now searching function correctly tells if nothing has found
	- fixed now search starts from begining of file if nothing has found from where cursor was
	- fixed, now tries to find in the registry the wincmd.ini location, but anyway asks to the user to confirm found value or navigate to the correct one (uses a shell extension as dialog) and stores it in the TCinipath ini key
	+ added, if the TCinipath value is incorrect proposes a dialog box to browse to the correct location
	+ added a beep when search restart from beginning of file

2.5 Jan 2003
	+ improved text formatting
	+ added extended processor informations
	+ added extended processor features
	+ added debugging processor information
	+ added full socket information
	+ added complete O.S. Information
	+ added mouse information (keys, buttons, delays, ...)
	+ added keyboard information (delay, repat)
	+ added Locale Information (localization settings)
	+ added Multimedia Information
	+ added a standalone program that does the same things, called DigTheSystem (collects informations, and on exit proposed to save it on a file). Very useful to give to customers to determine their configuration for remote assistance!
	+ added Configuration.jpg that show the most common way to to set-up and use this lister extension

2.5.1 Jan 2003
	+ added percentage in Lister
	- fixed some little mistakes in formatting and a bug when reopening several times the wlx
	+ added the about box to DigTheSystem (v 1.0.1) with help and a context menu (right click on the system configuration)
	+ added an icon to DigTheSystem (v 1.0.1)

2.7 Feb 2003
	- jump to version 2.7 because there are so many new functions that I feel a 2.7 is better than a 2.6 ^__^
	+ now the wlx interface is compliant with TC 5.51
	- eliminated the need for TNTSI.DLL, now you can delete this file!
	+ added Physical Geometry of Hard Disks (Sectors, Head, Cylinders, bios name and brand), requires on Win9x/ME an additional file .vxd, used to catch these informations.
	+ added serial ports enumeration
	+ added installed programs enumeration (from registry)
	+ DigTheSystem alligned with this release to version 1.5

2.8 Feb 2003
	+ now the list of installed programs is alphabetically sorted
	+ now the vxd file is created on-demand from internal resources (ide21201.vxd, a virtual drive used to catch physical Hard disk geometric information on Windows 9x/ME systems) and deleted after usage. The main advantage is that DigTheSystem is now a standalone program!

2.9 Feb 2003
	- fixed the COM ports enumeration were not working on WindowsNT and 95, because I used a function introduced only from Windows98 (SetupDiGetDeviceInterfaceDetail contained in SETUPAPI.dll).
	+ added, due to the above fix I rewrote the COM ports enumeration routine (both physical and virtual) and added a lot of interesting informations (baudrate, control flow, byte-parity-stopbit, them are the default parameters)
	- fixed the memory information for large partitions or page file are wrong. Now the limit is 2GB for each voice,because of a limitation of the Win32 API. There's a new API working fine, but has been introduced only with Windows 2000. 
	+ now the memory informations are more readable, and I also included the current memory usage

2.9.1 Feb 2003
	- fixed a duplicate printing in the serial port section
	
2.9.2 Feb 2003
	- fixed NIC address was not working on all platforms (on some reported casual numbers)
	+ added beside NIC address support for local ports (local loopback interfaces), gateway mask, subnet masks,  and NIC Type
	- fixed, now doesn't anymore checks for file wih extension .systeminfo, but only for the file called dummy.systeminfo (so other *.systeminfo files are seen as they are). All the possible ways to launch this wlx are now: "dummy.systeminfo", My Computer", "System.ControlPanel", "System.000"

3.0 Feb 2003
	-fixed a little bug that made CPU information to disappear on machines without *real* Ethernet cards
	+ added time consumed to calculate reported informations (at the beginning)
	+ added detailed log of system events: it behaves differently based on windows systems
	     -on Win NT/2000/XP reports uptime, reboot history, failures, bluescreens history, application failure history and so on..see ObtainedInformations.txt in this  archive
	     -on Win9x/ME reports uptime only, but with a maximum of 49,7 days (the system doesn't reports more than this, because of DWORD: 2^32 milliseconds=49,7 days)


Known Issues
----------------
1. Get the "last used" informations for each application 
2. Get the uptime for the system (where has been the last reboot).

Author
---------
Frumento Enrico, zapped@libero.it  (http://web.cefriel.it/~frumento)
