~~NOCACHE~~ ~~DISCUSSION~~ ## PortalLauncher [[https://drive.google.com/file/d/14pZeNCZt0ab_r57bWK9D6LJk40JD-KhU/view?usp=sharing|PortalLauncher]] ブラウザ(Chrome / Brave)から、PC上のアプリ・ショートカットをグループ分けしてワンクリックで起動するための拡張機能です。 ## 構成 PortalLauncherは2つの部品でできています。 | 部品 | 役割 | | **PortalLauncher**(Chrome拡張機能) | グループ・アプリの管理、ポップアップからの起動操作 | | **Relay**(Windows側の小さな仕組み) | `portallauncher://` というリンクを受け取って、実際にexe/lnkを起動する | 拡張機能だけではOS上のプログラムを直接起動できないため、Relay側と組み合わせて動作します。 --- ## 画面イメージ ### ポップアップ(実行画面) 拡張機能アイコンをクリックすると出る画面。グループ単位・サイト単位で実行できます。 {{.:pasted:20260728-110503.png?nolink 200}} ### 設定画面 左でCSV/JSON形式でのインポート/エクスポート、右で親子構成でショートカットを手動登録できます。 {{.:pasted:20260728-110845.png?direct 500}} ## インストール手順 ### 1. Relayの登録(初回のみ・PC1台につき1回) 1. `Relay`フォルダを、動かしたい場所に置く(**あとで移動しない**こと。移動するとレジストリの参照先がズレて動かなくなります) 2. `install.bat` を管理者として実行 3. 「登録が完了しました」と表示されればOK これはOS単位の登録なので、Chrome・Braveなど複数のブラウザから共有して使えます。ブラウザごとに登録し直す必要はありません。 ### 2. Chrome拡張機能の読み込み 1. `chrome://extensions` を開く 2. 右上の「デベロッパーモード」をON 3. 「パッケージ化されていない拡張機能を読み込む」→ `PortalLauncher` フォルダを選択 ### 3. シークレットモードでも使う場合 1. `chrome://extensions` の PortalLauncher の「詳細」を開く 2. 「シークレットモードでの実行を許可する」をON --- ## 使い方 ### グループ・アプリの登録 1. 拡張機能アイコンを右クリック →「オプション」(または、ポップアップ右上の⚙アイコン) 2. 「+ グループを追加」でグループを作成 3. グループ内の「+ このグループにアプリを追加」で、以下を入力 - **表示名**: ポップアップに出る名前 - **アイコン**(任意): `.exe`を選ぶと自動で埋め込みアイコンを抽出。うまく取れない場合は画像を手動アップロード - **パス**: 実行したい`.exe`または`.lnk`のフルパス(ショートカットを右クリック→プロパティ→リンク先が確実) - **起動引数**(任意): `--launch-product=...`のようなコマンドライン引数が必要なアプリのみ入力 ### 起動 - 拡張機能アイコンをクリック → 一覧から「実行」、またはグループの「まとめて実行」 - 初回起動時、Windows側で「このアプリを開きますか?」の確認が出ます(`portallauncher://`プロトコル特有の動作で、拡張機能側では省略できません) ### 並び替え・移動・削除 - グループ・アプリともに▲▼で並び替え可能 - アプリの「移動」ボタンで別グループへ移動できます --- ## バックアップ 設定画面の左側に2種類あります。用途が違うので使い分けてください。 ### CSV(追記のみ) - 列: `group,name,path,args` - 表計算ソフトで一括登録したい時向け。**既存データは消さず、追加されるだけ** - 同じ名前のグループがあれば再利用されます - アイコンは扱えません(インポート後に個別設定) ### JSON(完全バックアップ・上書き) - アイコン画像を含む、すべてのデータをまるごと書き出し/復元 - **インポートすると今の登録内容は全部上書きされます** - 別のブラウザ(例: ChromeからBrave)へそのまま移行したい時はこちら --- ## よくある質問 Q. アイコン自動取得で「アイコンが見つかりませんでした」と出る `.exe`の中にアイコンリソースが無いか、対応していない圧縮形式の場合があります。画像を手動でアップロードしてください。 Q. `.lnk`(ショートカット)からアイコンは取れる? 非対応です。ショートカットのリンク先である`.exe`を直接選べば、そちらのアイコンを取得できます(パス欄にはショートカットのパスを入れたままでOK)。 Q. ファイル選択ダイアログが、毎回変な場所から開く ブラウザの仕様で、JavaScript側からダイアログの初期フォルダを指定することはできません。ブラウザが「前回選んだ場所」を覚えている場合はそこから開きますが、アプリの保存場所を揃えておくと多少マシになります。 Q. シークレットモードでアイコンから設定を開くと、通常モードの新規ウィンドウで開いてしまう `chrome://extensions`の詳細で「シークレットモードでの実行を許可する」をONにしてください。それでも直らない場合は、拡張機能の再読み込みを試してください。 Q. `install.bat`を実行したら文字化けしたようなエラーが大量に出た `Relay`フォルダ内のファイルが正しい文字コード(Shift-JIS + CRLF)で保存されているか確認してください。配布用zipのファイルはこの形式で保存済みです。テキストエディタで開いて保存し直すと崩れることがあるので注意してください。 Q. 実行時に「起動に失敗しました」と出る - パスが正しいか(実際に存在するファイルか)確認してください - パスにスペースが含まれていても問題ありません(内部で自動的にクォートされます) - 起動引数の指定が正しいか確認してください --- ## セキュリティ設計メモ - パスワードなど機密情報は一切扱っていないため、バックアップデータの暗号化は行っていません - Relay(`portallauncher://`プロトコル)は`HKEY_CURRENT_USER`にのみ登録されます(管理者権限不要、他のユーザーアカウントには影響しません) - 実行できる対象は、拡張機能の設定画面で明示的に登録したパスのみです --- ## 開発情報 - **開発**: 個人利用ツール - **バージョン**: 0.5.0 - **対応環境**: Google Chrome / Brave(Manifest V3)、Windows - **権限**: storage, unlimitedStorage - **生成AI**: Claude ## 更新履歴 - **v0.5.0**: バックアップ画面をCSV/JSONで別枠に分離し、用途がわかるようバッジ表示。設定画面を2カラムレイアウトに変更 - **v0.4.0**: JSONエクスポート/インポート(完全バックアップ)、CSVエクスポート/インポート(追記)を追加 - **v0.3.0**: シークレットモード対応(`incognito: split`、設定を`tabs.create`で開くよう変更) - **v0.2.0**: 実行ファイル(.exe)からのアイコン自動抽出、手動画像アップロードに対応 - **v0.1.1**: 起動引数(`args`)に対応。Relay側のインストーラを`.reg`ファイル経由の方式に変更(文字コード起因の不具合修正) - **v0.1.0**: 初回リリース(グループ/アプリの親子構造、Relay経由でのアプリ起動) {{tag>Chrome 拡張機能}}