unique values of (value “DisplayName” of it as string) of keys whose (exists value “DisplayName” of it AND exists value “UninstallString” of it AND not exists value “SystemComponent” of it AND (not exists value “ParentKeyName” of it or value “ParentKeyName” of it != “OperatingSystem”)) of key “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry
I tried this and got Singular expression refers to nonexistent object.
(unique values of (value “DisplayName” of it as string),unique values of (value “InstallDate” of it as string)) of keys whose (exists value “DisplayName” of it AND exists value “UninstallString” of it AND not exists value “SystemComponent” of it AND (not exists value “ParentKeyName” of it or value “ParentKeyName” of it != “OperatingSystem”)) of key “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry
Because I use the OR operator “|”, it will only work for version 8.x.
unique values of ((value
"DisplayName" of it as string) &
" - " & (value
"InstallDate" of it as string |
"Installation date unknown")) of keys whose (exists value
"DisplayName" of it AND exists value
"UninstallString" of it AND not exists value
"SystemComponent" of it AND (not exists value
"ParentKeyName" of it or value
"ParentKeyName" of it !=
"OperatingSystem")) of key
"HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry
Now I could list which applications are installed today:
unique values of ((value “InstallDate” of it as string) & " - " & (value “DisplayName” of it as string)) of keys whose (exists value “DisplayName” of it AND exists value “UninstallString” of it AND not exists value “SystemComponent” of it AND (not exists value “ParentKeyName” of it or value “ParentKeyName” of it != “OperatingSystem”) AND (value “InstallDate” of it = ((year of it as string & “” & month of it as two digits & “” & day_of_month of it as two digits ) of date (local time zone) of now))) of key “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry
But if I want to see which applications were installed yesterday or days ago, I have to change the relevance InstallDate=exact date.
Could it possible to list the day what I want and do not have to change relevance.
Here is a “installed in the last 30 days” query. I just changed the = to a > and then I subtracted 30 days from “now”.
q: unique values of ((value “InstallDate” of it as string) & " - " & (value “DisplayName” of it as string)) of keys whose (exists value “DisplayName” of it AND exists value “UninstallString” of it AND not exists value “SystemComponent” of it AND (not exists value “ParentKeyName” of it or value “ParentKeyName” of it != “OperatingSystem”) AND (value “InstallDate” of it > ((year of it as string & “” & month of it as two digits & “” & day_of_month of it as two digits ) of ((date (local time zone) of now) - 30*day)))) of key “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry