2017-08-07 37 views
-1

AppUserModelID(AUMID) このデータからアプリケーション名を取得する方法はありますか(AppUserModelIDで何らかの文字列操作を行わずに)AUMIDをアプリケーション名に変換するC#

私はこれを処理するAPIコールを探しています。アプリケーション名以下の場合は

は、どのように私が代わりにAPPNAMEのAUMIDを受け入れるために、次のコードを変更することができ、「マイクロソフト・エッジ」

<start:Tile Size="2x2" Column="0" Row="2" AppUserModelID="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" /> 

だろう。

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関数は、appnameとして「Microsoft Edge」を提供することで機能します。

+0

あなたは、 "アプリケーション名" とはどういう意味ですか? – conio

+0

@conioアプリケーション名Microsoft.MicrosoftEdge_8wekyb3d8bbwe!xmlのMicrosoftEdgeは "Microsoft Edge"になります。私はこの名前を使ってスタートメニューにピンをつけています – nlstack01

+0

@conioあなたは謎を描いていますか?なぜこの基本的な質問があなたにとって理にかなっていないのだろうか?たぶんそこに答えがあるのです – nlstack01

答えて

1

あなたはそれがPath属性ではなく、名前でAUMIDフィルタですによってshell:AppsFolderにストア/ UWPアプリケーションを検索したい場合は。 Storeアプリの場合、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?)" 
    } 
} 
+0

残念ながら、指定されたxmlのPath属性はAUMID – nlstack01

+0

@ nlstack01のみです:しかし、 'Items()'メソッドが返すオブジェクトには 'Path'属性があります! – conio

関連する問題