AUMID 使えばコマンドラインから起動はできたが、Open with Code みたいな感じで、最初からフォルダやファイル開かせる方法は見つけられなかった。
ちょっと前に
と思い試してみた。
- 窓の杜 / 2022-02:09: Web版「Visual Studio Code」がオフライン動作に対応 〜PWAとしてインストール可能に
- 20220215: WindowsApps 以下の .exe が実行できない
- 20220217: Windows - App execution aliases
- 20220217: UWP アプリをコマンドラインから実行
と思い試してみた。
まず、Chromium 版の Microsoft Edge で
を開き、Microsoft Edge 右上の「…」→「アプリ」→「Visual Studio Code のインストール」から PWA としてインストールする。
次に PowerShell から AppxPackage と AppxPackageManifest を確認
UWP だと App を標準的に使ってるので、同じじゃね? と思い、試しに、
と、ここまでは上手く行ったのだが、
ついでに OpenFolder まで出来んものか? と思い、
ヘルプとか出ないかなと思い、/? とか /h, /help, -?, -h, --help 等も試してみたがスイッチ類を与えると、そもそも PWA が起動しない。
なんなら PowreShell だと -? で Start-Process のヘルプが出る始末。
web app なのでひょっとしてと思い
通常版のコマンドオプションが参考にならんものかと
流石に PWA にそこまで求めるのは酷と言うものかもしれないが、やはり「Open Folder」ボタンからファイルダイアログ経由でフォルダ選ぶのはちょっとだる過ぎる。
次に PowerShell から AppxPackage と AppxPackageManifest を確認
PS C:\Users\kou> Get-AppxPackage |? Name -match Code Name : vscode.dev-AC33FD98 Publisher : CN=vscode.dev, OID.2.25.311729368913984317654407730594956997722=1 Architecture : Neutral ResourceId : Version : 1.0.0.0 PackageFullName : vscode.dev-AC33FD98_1.0.0.0_neutral__whmmdym2whtw2 InstallLocation : C:\Program Files\WindowsApps\vscode.dev-AC33FD98_1.0.0.0_neutral__whmmdym2whtw2 IsFramework : False PackageFamilyName : vscode.dev-AC33FD98_whmmdym2whtw2 PublisherId : whmmdym2whtw2 IsResourcePackage : False IsBundle : False IsDevelopmentMode : False NonRemovable : False Dependencies : {Microsoft.MicrosoftEdge.Stable_98.0.1108.43_neutral__8wekyb3d8bbwe} IsPartiallyStaged : False SignatureKind : None Status : Ok
PS C:\Users\kou> Get-AppxPackage |? Name -match Code | Get-AppxPackageManifest xml Package --- ------- version="1.0" Package
PS C:\Users\kou> Get-AppxPackage |? Name -match Code | Get-AppxPackageManifest |% {$_.Package} xmlns : http://schemas.microsoft.com/appx/manifest/foundation/windows10 mp : http://schemas.microsoft.com/appx/2014/phone/manifest uap : http://schemas.microsoft.com/appx/manifest/uap/windows10 uap3 : http://schemas.microsoft.com/appx/manifest/uap/windows10/3 uap10 : http://schemas.microsoft.com/appx/manifest/uap/windows10/10 rescap : http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities rescap3 : http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/3 desktop2 : http://schemas.microsoft.com/appx/manifest/desktop/windows10/2 IgnorableNamespaces : uap uap3 rescap desktop2 Identity : Identity Properties : Properties Dependencies : Dependencies Resources : Resources Applications : Applications Capabilities : Capabilities見てのように、UWP とは異なり、Package.Applications 及びその下にぶら下がってる Package.Applications.Application が見当たらないため、AUMID (PackageFamilyName + "!" + Application.Id) の構成要素である Application.ID が分からない。
UWP だと App を標準的に使ってるので、同じじゃね? と思い、試しに、
Start-Process shell:appsFolder\vscode.dev-AC33FD98_whmmdym2whtw2!Appとしてみたところ、ビンゴ! PWA としてインストールした Visual Studio Code が起動した。
と、ここまでは上手く行ったのだが、
ついでに OpenFolder まで出来んものか? と思い、
Start-Process shell:appsFolder\vscode.dev-AC33FD98_whmmdym2whtw2!App -ArgumentList . Start-Process shell:appsFolder\vscode.dev-AC33FD98_whmmdym2whtw2!App -ArgumentList C:\Users\kou Start-Process shell:appsFolder\vscode.dev-AC33FD98_whmmdym2whtw2!App -ArgumentList file://C:/Users/kou等をためしてみたが、此方は上手く行かない。
ヘルプとか出ないかなと思い、/? とか /h, /help, -?, -h, --help 等も試してみたがスイッチ類を与えると、そもそも PWA が起動しない。
なんなら PowreShell だと -? で Start-Process のヘルプが出る始末。
web app なのでひょっとしてと思い
Start-Process shell:appsFolder\vscode.dev-AC33FD98_whmmdym2whtw2!App?folder=openfile://C:/Users/kouみたいなのも試してみたが、こちらは、AUMID として認識されなくなりエラーになる。
通常版のコマンドオプションが参考にならんものかと
- Visual Studio Code / USER GUIDE / Command Line Interface (CLI)
流石に PWA にそこまで求めるのは酷と言うものかもしれないが、やはり「Open Folder」ボタンからファイルダイアログ経由でフォルダ選ぶのはちょっとだる過ぎる。
Google Chrome から PWA をインストールした場合、shell:appsFolder には出て来るんだけど、Get-AppxPackage には出て来ない。
shell:appsFolder から適当なフォルダーにショートカットファイルを作って、内容を確認してみたところ、
更に、「PWA start command-line chrome」でググると
prefix の _crc_ が不要なのでは?と思い
%LOCALALLDATA% 以下を確認してみると
ProcessExplorer でコマンドラインパラメータ確認してみると
でもそれはさっき試して駄目だったのだが、と思い、これをコピペしてみると
狐につままれた気持ちになりながら、app-id 比較してみると
なんか、shell schema の方は id が真ん中省略してあって頭とお尻確認すると一見同じに見えるんだけど、実は真ん中が省略してあって、長さが違うみたいな罠だった。
酷い。
あと、--profile-directory=Default はなくても起動する。
shell:appsFolder から適当なフォルダーにショートカットファイルを作って、内容を確認してみたところ、
- Chrome._crx_jhdpafkbedecbbppbpboebapeb
Start-Process shell:appsFolder\Chrome._crx_jhdpafkbedecbbppbpboebapebとしてみたら起動は出来た。
更に、「PWA start command-line chrome」でググると
- stackoverflow / 2020-06-13: Open up multiple PWA using the google-chrome cli option
chrome --profile-directory=Default --app-id=$appidで動くみたいな話を見つけたんだが、此方はなぜか
Start-Process "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -ArgumentList --profile-directory=Default,--app-id=jhdpafkbedecbbppbpboebapebでは起動してくれなかった。
prefix の _crc_ が不要なのでは?と思い
Start-Process "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -ArgumentList --profile-directory=Default,--app-id=_crx_jhdpafkbedecbbppbpboebapebも試してみたが駄目。
%LOCALALLDATA% 以下を確認してみると
- %LOCALAPPDATA%\Google\Chrome\User Data\Default\Web Applications\_crx_jhdpafkbedbgckdnecbbppbpboebapeb
ProcessExplorer でコマンドラインパラメータ確認してみると
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory=Default --app-id=jhdpafkbedbgckdnecbbppbpboebapebってなってたんだが、 prefix の _crx_ が不要ってこと?
でもそれはさっき試して駄目だったのだが、と思い、これをコピペしてみると
Start-Process "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -ArgumentList --profile-directory=Default,--app-id=jhdpafkbedbgckdnecbbppbpboebapebで起動する。
狐につままれた気持ちになりながら、app-id 比較してみると
shell:appsFolder\Chrome._crx_jhdpafkbedecbbppbpboebapeb # 有効な shell schema の app id --app-id=jhdpafkbedecbbppbpboebapeb # 起動しなかった方 --app-id=jhdpafkbedbgckdnecbbppbpboebapeb # 起動した方とかなってて、 shell schema からコピペしたのが駄目だったらしい。
なんか、shell schema の方は id が真ん中省略してあって頭とお尻確認すると一見同じに見えるんだけど、実は真ん中が省略してあって、長さが違うみたいな罠だった。
jhdpafkbede cbbppbpboebapeb # 起動しなかった方 jhdpafkbedb gckdne cbbppbpboebapeb # 起動した方
酷い。
あと、--profile-directory=Default はなくても起動する。
タグ
コメントをかく