はじめに
常駐型のWindowsツールでは、起動中のウィンドウがタスクバーに出ないことがあります。特にtkinterで overrideredirect(True) を使ったポップアップUIや、非表示rootを使うアプリでは、通常のデスクトップアプリのようなタスクバー表示になりません。
この状態で「起動中のアイコンを右クリックしてピン留めしてください」と案内すると、利用者が迷いやすくなります。
安定した運用にするには、起動中アプリではなく、呼び出し専用のランチャーEXEをタスクバーに固定してもらう設計にします。
こんな場面で使えます
- tkinterで常駐型デスクトップツールを作る
- ランチャーEXEから既存プロセスの画面を呼び出す
Windows + 数字キーで素早く画面を開かせたい- ポップアップ型UIでタスクバー表示が安定しない
- インストーラーなしのZIP配布で利用手順を案内したい
実装パターン
タスクバーに固定する対象は、本体EXEではなくランチャーEXEにします。
MyTool-v1.0.0/
MyTool.exe
MyToolLauncher.exe
README.txt
READMEでは、利用者に次のように案内します。
MyToolLauncher.exe をタスクバーにピン留めすると、Windows + 数字キーで呼び出せます。
起動中の画面がタスクバーに出ない場合がありますが、常駐ポップアップ型UIの仕様です。
ランチャーEXEは、起動済みの本体へ画面表示を通知します。本体が起動していない場合だけ本体を起動します。
設計のポイント
| 判断ポイント | 理由 | |---|---| | 起動中アイコンをピン留め対象にしない | tkinterのウィンドウ形態によって表示が安定しない | | ランチャーEXEを固定してもらう | 呼び出し入口を常に同じにできる | | READMEに手順を書く | インストーラーなし配布でも利用者が迷いにくい | | 正式な利用フォルダのEXEを固定する | 開発用や一時フォルダのEXEを参照するミスを防ぐ |
注意点・ハマりポイント
- タスクバーへの完全自動ピン留めは避ける: Windows側の制限が強く、配布ツール側で無理に自動化すると環境差で壊れやすくなります。
- 古いアイコンが残ることがある: アイコンを更新した場合、古いピン留めを解除し、正しいフォルダのランチャーEXEを再度ピン留めします。
.lnkが古いパスを指す場合がある: 配布フォルダを移動した後、ショートカットだけ古い場所を見ていることがあります。- OneDriveやビルド用distのEXEを固定しない: 正式に使うフォルダへ展開してから、その中のランチャーを固定します。
- Explorer再起動が必要な場合がある: アイコンキャッシュが残ると、正しいICOを埋め込んでも古い表示のまま見えることがあります。
実際の活用事例
常駐型のショートカット支援ツールで、本体ウィンドウをタスクバーに出すのではなく、呼び出し専用ランチャーEXEをタスクバーに固定する運用にしました。これにより、Windows + 数字 キーから画面を呼び出せる一方、本体プロセスは二重起動しない構成にできます。
まとめ
- 常駐型tkinterアプリでは、起動中ウィンドウがタスクバーに出ないことがある
- タスクバーには本体ではなくランチャーEXEを固定してもらう
- READMEにピン留め手順と仕様を明記する
- 古いピン留め、古いパス、アイコンキャッシュを確認対象にする
