Open Exidex opened 6 months ago
Gave an attempt at implementing Application plugin for Windows, unfortunately couldn't make it work. Application plugin does 2 things: collects list of applications and launches one of those when use selects the item. I was able to successfully collect applications via SHGetKnownFolderItem
on FOLDERID_AppsFolder
and iterating over children of that folder where each child is an application. This does work but unfortunately I couldn't find a way to launch an application that would work for different types of those applications.
ShellExecuteExW
seems to work only for url links and exe, but only if PIDL doesn't contain KnownFolder GUID. IApplicationActivationManager::ActivateApplication
only seems to work for AUMIDs (e.g. Microsoft.WindowsFeedbackHub_8wekyb3d8bbwe!App
).IContextMenu::InvokeCommand
just fails for unknown reason.Here is a list of different types of PIDLs that I have found in AppsFolder:
Microsoft.WindowsFeedbackHub_8wekyb3d8bbwe!App
{F38BF404-1D43-42F2-9305-67DE0B28FC23}\\regedit.exe
{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\\Windows Kits\\10\\Shortcuts\\WindowsStoreAppDevCenterToolsDocumentation.url
{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\\WF.msc
{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\\appverif.chm
MSEdge
VisualStudio.f7b86bd3
Microsoft.Windows.RemoteDesktop
Microsoft.AutoGenerated.{C804BBA7-FA5F-CBF7-8B55-2096E5F972CB}
- Resource Monitorhttps://nodejs.org/
- Node.js websiteApplication needs to be able to launch each of those, either in generic way or by handling each of those separately, but then arises the challenge of being able to reliably tell which of those types the PIDL is.
See https://github.com/project-gauntlet/gauntlet/commit/a60fc0f34b44055652dd85b168ea04a50d912f49 for code
SHGetKnownFolderItem
& Co APIs