fenrirのホットキーワイルドカードと引数

前置き

以前、名称による関連付け専用版ポチエスについて記事を書きました。そこではフォルダを用途によって違うソフトに投げるということをやりました。
fenrirで、インスタントコマンドを使わずに引数を送ることできないかな、と思ってポチエスで色々やろうとしてたんだけど、ふとfenrirでワイルドカードで実行を割り振ることができるとか誰か(2ちゃんねるのひとが)いっていたことを思い出す。
調べてみると、fenrirでも前やったのと同じことができる。cmd.txtの説明では、

ワイルドカードによる判別

あとで付け足したので、仕様的に一貫しないものがありますが、パスを対象としたワイルドカード
よる判別も可能です。
複数指定したい場合は、 / (スラッシュ)で区切ります。(いずれ仕様を整理したいと思います。)

[*.txt/*.htm?/c:\apps\*.ini
editor|c:\editor\editor.exe "%P"
]

とのこと。fenrir結構長く使ってるのにきづかなかったよ(>Д<。)
ポチエスかますと色々説明面倒になったり自分でもなにをやっているかわからなくなるので、今回はfenrirを用います。

やりたいこと

fenrirで引数をどうするかという議論は結構昔からある。craftlaunchとかBlueWindなら、よゆーでできるけどfenrirの場合パスをそのまま表示、という仕方だから難しい。
この問題を解決する方法の一つがインスタントコマンド。instant.iniに記述することで、それを引数つきでよびだすことができる。よく使うのは、ファイラの呼び出しだとか単機能ツールを利用したものですね。スクリーンセーバーとかシャットダウンとかrebootとか。
けれど、このやり方には難点がひとつ。それは普段使わないコマンドは覚えられないということ。シャットダウンとかファイラとか、使用頻度が高いから忘れるわけ無いけど、たまに使ってかつ引数をつけて起動したいものだと、インスタントコマンドに登録しても使えない。忘れちゃうから。
shorterを起動してそこから、というのももちろんありなんだけど、小物じゃないツールだったらそれも微妙。普通にfenrirでパスを探すときのように絞り込みをして、そこでEnterを押すと、勝手に引数付きで起動してくれるというのがいい。

Radiosure

でもそんなに引数つけて起動したいソフトなんてあるのか?っていうとあんまりない。
僕の場合は一つだけあって、それがradiosure。じゃあ、それって結構みんな困っているようなことなの?というと僕だけの問題意識のような気がする。別にソフトウェア好きなひとがみんな使うとか知ってるとかそういうのでもないしねー(−`*)
やりたいのは、radiosureというソフトに引数をつけて最小化の状態で起動したい、というだけです。
radiosureというのは、僕が結構好きなソフトなので一応紹介。今まで記事にしてきたものとは毛色違うけどね。

これは、ネットラジオプレイヤー。起動すると、ひたすらネットラジオを流してくれる。
デフォでは、10000以上の局が登録されていて自分でも追加できる。インクリメンタルサーチができたりする。けど、僕はひたすらkawaii-radioというところを聞き続けている。外国のサイトだと思うんだけど、ひたすらJPOPとかアニソンとか流してくれるの。

パソコンとかで音楽聞く場合とか、だいたいはmp3フォルダを適当に検索して、それをプレイヤーに投げるという方法をとっているんだけど選曲すらも面倒になることがあるんだよね。そういうときにはこれを起動する。
そのときは最小化した状態で起動したい。そしてそれには、引数に/hiddenをつければいい。
じゃあどうやってそれをつけるかというところで、今回の話につながる。

やり方

[D:\bin1\RadioSure\RadioSure.exe
RadioSureHidden | D:\bin1\RadioSure\RadioSure.exe /hidden
]

これを、fenrirのcmdフォルダの0enter.txtに書き加える。それだけです。
そうしたら、radiosureを絞り込んで実行した場合、最小化状態で起動してくれる。
普通に起動したい場合にはどうしたらいいのか、ということになるけど、そういうときには普通にファイラにパスを渡してそこから実行というようにすればいい。だから問題なし。

引数をつけて渡すホットキーを作ってもいいかな、と少し思った。たとえば、2enter.txtをcmdフォルダにつくって

2enter.txt
[D:\bin1\RadioSure\RadioSure.exe
radiohidden | D:\bin1\RadioSure\RadioSure.exe /hidden
]

[.???;
引数をつけて実行|D:\bin1\exeに引数とか付けて起動するやつ+@\RunCommand.ahk "%P"
]

みたいにすればいいんじゃないかな、と。2enter.txtというのは、Ctrl+Enterをあらわしてるんですよ☆ミ
もし、引数をつけて起動したいものが他にもあれば、radiosureのとこみたいに追加していけばいい。そして、それからはずれたものは引数をつけて実行に渡すAHKスクリプト、と。これは、過去にソフトウェア板のどこかのスレで頂いたものです。
載せさせていただきますが、もし不都合があれば消します><そのときは連絡を>ω<
けど、どうせあんまし引数をつけてどうこうしたいものとかないし、べつに引数用のホットキーとかなくていーかなっと。

RunCommand.ahk
#NoTrayIcon
paraLen = %0%
If paraLen = 0
{
	InputBox, RunProgram, プログラムのパスと引数を入力してください。, , , 480, 90
	If ErrorLevel <> 0
		return
}
else
{
	Loop, %paraLen%
	{
		buf := %a_index%
		RunProgram = %RunProgram% "%buf%"
	}
}
InputBox, NorW, (空白を含む場合は"か'で囲むこと!), %RunProgram%, , 480, 130
if ErrorLevel <> 0
	Return
Run, %RunProgram% %NorW%
Return

ポチエス

ここでやったことはもちろん名称による関連付け版ポチエスでもできる。

esExt5_c1.ini
 [system]
 @menu=active

 @context=0
 %end

 [^D:\bin1\RadioSure\RadioSure.exe]
 D:\bin1\RadioSure\RadioSure.exe | RadioSUre
 >/hidden
 %end

 [.*]
 D:\bin1\exeに引数とか付けて起動するやつ+@\RunCommand.ahk
 %end

みたいなのをつくって、fenrirの適当なキーに登録したらいいんじゃないかな。/#s=esExt5_c1.iniというオプションをつけて。

その他

  • xyzzyを最近いじってます。lispを勉強してなにかやろっかなーと。外部プログラムのgrepに渡して、それをうんぬんかんぬんみたいなのをしたい。
  • Everythingの新しいバージョンだと、キーバインドいじれるっぽいですね。1.2.1.436aというのが僕の入れているやつ。誰か解説とかブログでしてくれないかな。
  • あふwの正式版がでた。最近は、あふとPPxをうまいことくみあわせたらうまいこと作業できるのでないかと思ってる。