将AUMID转换为应用程序名称C#

时间:2017-08-07 21:38:50

标签: c# windows

给定AppUserModelID(AUMID) 有没有办法从这些数据中获取应用程序名称(不试图在AppUserModelID上进行一些字符串操作)?

我正在寻找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?)"
    }
}

这个powershell功能可以通过提供“Microsoft Edge”作为appname来实现。

1 个答案:

答案 0 :(得分:1)

如果您希望在shell:AppsFolder中通过Path属性而不是名称来查找AUMID过滤器中的商店/ UWP应用程序。对于商店应用,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?)"
    }
}