给定AppUserModelID(AUMID)有没有办法从这个数据获取应用程序名称(而不尝试对AppUserModelID做一些string操作)?
我正在寻找一个api电话来处理这个或这种性质的东西。
在下面的情况下,应用程序名称将是“Microsoft Edge”
<start:Tile Size="2x2" Column="0" Row="2" AppUserModelID="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
我如何改变下面的代码来接受一个AUMID而不是一个appname。
function Pin-App { param( [string]$appname, [switch]$unpin ) try{ if ($unpin.IsPresent){ ((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -eq $appname}).Verbs() | ?{$_.Name.replace('&','') -match 'Unpin from Start'} | %{$_.DoIt()} return "App '$appname' unpinned from Start" }else{ ((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -eq $appname}).Verbs() | ?{$_.Name.replace('&','') -match 'Pin to Start'} | %{$_.DoIt()} return "App '$appname' pinned to Start" } }catch{ Write-Error "Error Pinning/Unpinning App! (App-Name correct?)" } }
这个PowerShellfunction将通过提供“Microsoft Edge”作为应用程序的工作。
如果要在shell:AppsFolder
找到Store / UWP应用程序shell:AppsFolder
通过AUMID按Path
属性进行筛选,而不是按名称进行筛选。 对于商店应用程序,“ Path
属性包含应用程序的AUMID。
请注意,对于桌面应用程序,“ Path
属性给出可执行文件的实际路径。
而不是尝试从AUMID中找到应用程序名称,只需通过其AUMID添加它们即可。
哎呀:
function Pin-App { param( [string]$aumid, [switch]$unpin ) try{ if ($unpin.IsPresent){ ((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Path -eq $aumid}).Verbs() | ?{$_.Name.replace('&','') -match 'Unpin from Start'} | %{$_.DoIt()} return "App '$aumid' unpinned from Start" }else{ ((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Path -eq $aumid}).Verbs() | ?{$_.Name.replace('&','') -match 'Pin to Start'} | %{$_.DoIt()} return "App '$aumid' pinned to Start" } }catch{ Write-Error "Error Pinning/Unpinning App! (App-Name correct?)" } }