【发布时间】:2021-10-24 21:17:38
【问题描述】:
我试图弄清楚文件资源管理器如何能够在特定程序(上下文菜单 => 打开方式)中打开文件,特别是已安装的 UWP (Appx) Microsoft 商店应用程序,以便我可以通过 Powershell 执行此操作。
更多详情请查看此帖: How to open installed Microsoft Store apps from powershell?
在该线程中,我们认为您可以使用以下参数启动已安装的 UWP 应用:
Start-Process ('shell:AppsFolder\' + (Get-AppXPackage *Edge*)[-1].PackageFamilyName + '!App') -ArgumentList 'http://example.org https://wikipedia.org'
但是,“照片”和“VLC”之类的应用似乎不只是打开作为参数传递的文件:
Start-Process ('shell:AppsFolder\' + (Get-AppXPackage *Photos*).PackageFamilyName + '!App') -ArgumentList 'C:\test\image1.png'
Start-Process ('shell:AppsFolder\' + (Get-AppXPackage *VLC*).PackageFamilyName + '!App') -ArgumentList 'C:\test\audio1.mp3'
上述线程中的@mklement0 认为它可能正在使用COM: \HKEY_CLASSES_ROOT\jpegfile\ShellEx\{e357fccd-a995-4576-b01f-234630154e96} 和%SystemRoot%\system32\PhotoMetadataHandler.dll
我对 powershell / COM / DLL 的经验很少,所以我不确定如何应用这些信息。
问题
是否有一种通用方法可以使用 Powershell(或 C# 作为最后手段)在指定的 UWP 应用中打开作为参数(或其他方式)传递的任何文件(任何扩展名)?
如果这很容易做到,您能否建议一种方法来获取支持指定文件类型/扩展名的应用程序列表? (与文件资源管理器的“打开方式”菜单相同)
【问题讨论】:
-
您找到的注册表项属于Thumbnail Handler。 docs 可能会有所帮助。至于用特定的 UWP 应用程序打开文件 - 我不知道。任务管理器的命令行一栏有没有什么帮助?
-
感谢您的信息。 UWP 应用的进程似乎没有在任务管理器中指定任何进程参数
标签: c# windows powershell dll uwp