[SOLVED] Application to list apps most often used?

Winfried

Extraordinary Member
Joined
Aug 30, 2011
Messages
32
Hello,

To make a bit less painful to migrate from my aging 32-bit Windows 7 workstation to the latest and greatest, I need to find what apps I most often use, before gathering and installing the latest version of each and importing data files and settings.

The "Last Used On" column in W7's Programs application in Control Panel is empty. Apparently, MS stopped monitoring app use even before W7.

I googled a bit but found no app for that task.

Do you know of any, available for 32-bit Windows, preferably free (beer/speech)?

Thank you.
 


Solution
The closest you will get is looking at timestamps on prefetch files.
I put together a small powershell script you can run to get applications and their last execution time sorted. It will need to be run from an elevated prompt. Some of them you'll just need to throw out since they are Windows binaries.

Code:
$PrefetchDirectory = 'C:\Windows\Prefetch'
$PrefetchFiles = (Get-ChildItem -Path $PrefetchDirectory -Include "*.pf" -Recurse | Sort-Object -Property LastWriteTime -Descending)
$EXE = '.exe'
$ExtLength = $EXE.Length

foreach($Prefetch in $PrefetchFiles) {
    $Index = $Prefetch.Name.ToLower().IndexOf($EXE)+$ExtLength
    $EXEName = $Prefetch.Name.Substring(0,$Index)
    Write-Host "Application: " -NoNewline
    Write-Host "$EXEName"...
The closest you will get is looking at timestamps on prefetch files.
I put together a small powershell script you can run to get applications and their last execution time sorted. It will need to be run from an elevated prompt. Some of them you'll just need to throw out since they are Windows binaries.

Code:
$PrefetchDirectory = 'C:\Windows\Prefetch'
$PrefetchFiles = (Get-ChildItem -Path $PrefetchDirectory -Include "*.pf" -Recurse | Sort-Object -Property LastWriteTime -Descending)
$EXE = '.exe'
$ExtLength = $EXE.Length

foreach($Prefetch in $PrefetchFiles) {
    $Index = $Prefetch.Name.ToLower().IndexOf($EXE)+$ExtLength
    $EXEName = $Prefetch.Name.Substring(0,$Index)
    Write-Host "Application: " -NoNewline
    Write-Host "$EXEName" -ForegroundColor Green -NoNewline
    Write-Host "-- Last Run: $($Prefetch.LastWriteTime)"
}
 


Solution
Thanks much for the tip!

Among the many apps/scripts available, Nirsoft's WinPrefetchView makes it possible to sort files by their location, an easy way to ignore those living in the Windows directory.

Cheers,
 


Back
Top