This is possible. Here is how:
First, you need to access all the to the file path names for every installed product. Use this Registry key to access the list of executable files:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
You can access Registry nodes using the class
Microsoft.Win32.Registry
.
For every child node of this node you will find executable file path name. Look at the properties of some of these files. The system property dialog will show some times, including one under the label "Accessed". Run the application and make sure this time changes to the time you run it. You can retrieve this time programmatically using
System.IO.File.GetLastAccessTime
or
System.IO.File.GetLastAccessTimeUtc
.
—SA