素人の備忘録。
動機
コマンドラインランチャーがほしい。
職場のPCでソフト入れられない。
自分で作るスキルはない。
ということで適当に簡素なものを作ったところ、自分には十分なものが出来てしまい、私物のPCでもこれを使うようになってしまった…
解決策
ランチャー本体
バッチファイルで簡素に作った。
@echo off
title A-Launcher
cd D:\A-Launcher
set lnkname=
:start
set /p lnkname=""
if /i "%lnkname%" == "q" (
exit
) else if not "%lnkname:.lnk=%" == "%lnkname%" (
if exist %lnkname% (
start %lnkname%
) else (
goto start
)
) else (
if exist %lnkname%.lnk (
start %lnkname%.lnk
) else (
goto start
)
)
title
とcd
先のフォルダは適当に。
この例ではD:\A-Launcher
以下にショートカット(.lnkファイル)を詰め込む。
入力したショートカット名が存在すれば起動し、ない場合は入力に戻る。
qを入力すると閉じる。
適当に作った割にTabキーで補完も効くので意外と便利。
入力に.lnkが入っているかどうかで処理を分けているので、例えばgvim.lnk
を起動したいときに、gvim
と手入力しても、補完でgvim.lnk
を選んでもどちらでも起動する。
バッチファイルをそのまま実行すると普段のコマンドプロンプトが開いてしまう。
バッチファイルのショートカットから起動するようにすると、ウインドウサイズをランチャ専用に記憶してくれるので便利。
文字サイズ72、幅20、高さ1などとして画面右上に置くとそれっぽいかもしれない。
起動の仕方
Windows純正の機能でやる場合はバッチファイルのショートカットにプロパティからショートカットキーを設定する。
AutoHotkeyなどでショートカットキーを設定してもよい。
以下は左右Shift同時押しでランチャーを起動する例。
一応多重起動はしないようにした。
追記[2016/06/16]
ウィンドウタイトルの指定だけではA-Launcherフォルダなどを開いているとランチャーを起動できなくなってしまうので、exeの指定も入れた。
追記[2016/07/07]
Shiftキー二連打でも起動したかったので修正。
;; 左右のShift同時押しでランチャ起動
LShift & RShift::
IfWinExist, A-Launcher ahk_exe cmd.exe
{
WinActivate, A-Launcher ahk_exe cmd.exe
}
Else
{
Run, "D:\A-Launcher\A-Launcher.lnk"
}
Return
;; Shift二連打でランチャ起動
$Shift::
KeyWait, Shift, T0.3
If (A_PriorHotkey == A_ThisHotkey) && (300 > A_TimeSincePriorHotkey)
{
IfWinExist, A-Launcher ahk_exe cmd.exe
{
WinActivate, A-Launcher ahk_exe cmd.exe
}
Else
{
Run, "D:\A-Launcher\A-Launcher.lnk"
}
}
return
蛇足
なんでA-Launcherなどという名前にしたかというと、特攻野郎Aチームの工作シーンのノリで作ったからです。
飛行機だけは勘弁な!