Skip to content

Instantly share code, notes, and snippets.

@hiroakit
Last active March 8, 2020 05:01
Show Gist options
  • Save hiroakit/e88a697c551456584a996950ebebd520 to your computer and use it in GitHub Desktop.
Save hiroakit/e88a697c551456584a996950ebebd520 to your computer and use it in GitHub Desktop.
Windows 10 Pro (version 1909, OSビルド 18363.693)でアプリケーションを「スタート メニューにピン留め」しようと思って書いたPowerShellスクリプト。結論としては実現できずだった。FolderItemのリファレンス: https://docs.microsoft.com/ja-jp/windows/win32/shell/folderitem
function PinToStartMenu($FileFullPath) {
if(!(Test-Path $FileFullPath)) {
Write-Error("File not found. Please check file path.")
return
}
$PathName = Split-Path $FileFullPath -Parent
$FileName = Split-Path $FileFullPath -Leaf
$Shell = new-object -com "Shell.Application"
$TergetFolder = $Shell.Namespace( $PathName )
$TergetItem = $TergetFolder.ParseName( $FileName )
$TergetItem.Verbs() | Where-Object {
If ($_.Name -like "スタート メニューにピン留めする") {
Write-Host ($_.Name)
$_.DoIt()
}
}
}
PinToStartMenu "C:\Program Files\Microsoft VS Code\Code.exe"
@hiroakit
Copy link
Author

hiroakit commented Mar 8, 2020

日本語環境の場合、本スクリプトの「スタート メニューにピン留めする」はShift JISでエンコードされていなければならない。
VS CodeでUTF-8でエンコードしてデバッグしていたら、なかなか $_.Name -like が成立しなくて、ずっとfalseだった。徒労。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment