Software: System Information and Process Explorer
I’ve been bumbling around for the last few weeks trying to find a tool that will tell me exactly what is running on my machine. So far I’ve identified two tools that open up views into what is running and being used on the computer.
System Information (MSInfo32.Exe)
From a debugging perspective System Information is a nice little tool that shows what modules (DLLs and EXEs) are loaded. This is particularly interesting to me right now as I am having some problems that may be the results of not loading the DLLs I think should be loaded. While I don’t think that System Information has everything I need it certainly has more information about the state of my machine than Task Manager. (I’ve also only remembered this tool, like, 10 different times. Wish I could blame it on age...wait...I can.)
To get to the “System Information” window from either Visual Studio 2003 or 2005:
- On the menu bar, select ‘Help’ -> ‘About Microsoft Visual Studio’
- On the “About Microsoft Visual Studio” window, select the ‘System Info’ button.
The “System Information” window is now open.
Or, you can launch “System Info” from C:\Program Files\Common Files\Microsoft Shared\MSInfo\MSInfo32.exe.
Either way, this is a really fun tool to bop around in. Unlike Task Manager I can see a fully qualified path that tells me exactly which DLLs and EXEs are currently loaded. This tool does not actively update this information; you have to do a ‘Refresh’ but if you have any questions about whether your running what you think you’re running...this is a great place to look.
I found the ‘Office 2003 Applications' section very interesting as I’ve been playing around a lot with Excel. There is also a section called ‘Office Event/Application Fault’ which looks like it might extract Office Events from the Event Manager.
You can find an incomplete product description at ”Description of Windows XP System Information (MSinfo32.exe) Tool”. The System Information Help available from within the product also seems incomplete. But don’t let that stop you.
Process Explorer is a free utility that can tell you what is currently open: files, directories, DLLs, it even looks like it knows which Registry keys. It is one of the more powerful diagnosis and debugging tools available to you. Download here. It requires Microsoft’s Debugging Tools so if you don’t have that installed already you’ll need to do that. Don’t worry if you don’t know, Process Explorer’s installer will tell you.
Again the documentation wasn’t all that, but if you play around with it you’ll find it so easy to use that you won’t miss the docs...at least not that much.
Here is the .NET point of interest.
- Put Process Explorer in DLL mode by selecting Ctrl-D.
- Right click on the Header field for the bottom window and select ‘Select Columns’.
- This pops up a ‘Select Columns’ property page, select the ‘.NET’ page.
- On the ‘.NET’ page check the ‘Assemblies’ box, select ‘OK’
Now in the top window select the executable you’re interested in. I loaded Visual Studio so I want devenv.exe. Go to the bottom window and select a DLL of interest say....System.Drawing.ni.dll and hover over it until the information tag pops up. Notice the version number? Cool. I can now know what version of .NET an application is trying to use.