cmddlg


はじめに

コマンドライン環境で育ったせいかどうか分かりませんが, Windows を使ってる時でもエクスプローラなんかで, パラメータを沿えてファイルを起動したいときがよくあります.

その際, わざわざプロンプトを立ち上げてエクスプローラで表示中の ディレクトリに移動するのがめんどくさいので, FD の H や X コマンドの ようなものができないかな〜と考え, 作ってみました.

プログラムの中身

ダイアログから文字列を受けとって, それを system() で起動するだけなんですが...

起動したプログラムが終了後「何かキーを押して下さい」と表示させるためには, 一行に命令を並べなくてはいけません. NT だと&を使って並べることが出来る ようですが, 95 の場合出来ないようです. また, コマンドプロンプトらしく見せるために, `>'を echo で表示させてるの ですが, これまた NT だとエスケープできるようですが, 95 だとどうすれば いいのか分かりません.

ってことで, NT 専用になってしまいました.

インストール

実行形式はこいつです.

こいつを適当なディレクトリに放り込むだけでいいんですが, エクスプローラから 手軽に起動させるためには, ちっとレジストリをいじらないといけません. 自信のない方はあきらめて下さい.

手順はレジストリエディタを立ち上げ, HKEY_CLASS_ROOT の * と Folder に対し, Sehll が無ければ Shell を追加し, その下に SendShell を追加して以下のように 編集します.

  1. SendShell を 「DOS プロンプト」と命名.
  2. SendShell に 「command」 を追加.
  3. command を 「d:\tools\etc\cmddlg.exe %1」などと, cmddlg.exe の絶対パスを %1 付きで命名.
こうすると, エクスプローラからファイルやディレクトリの上で右クリックすると, 「DOS プロンプト」という表示が出るはずです. 選択すると, ファイルやディレクトリ名がデフォルトで入ったダイアログが現れる ので, 適当にパラメータを加えてやると, そのように実行されます.

さらに後日, 上下のカーソルキーか C-n, C-p で過去に入力したコマンドを 出す機能をつけました. これは, exe ファイルと同じディレクトリにヒ ストリ用のファイルを作って実現しています. このファイルの一行目に幾つ ヒストリを覚えているか書いてます (デフォルトは 10 です) ので, 増や したい場合ここの数字を上げてください. また, C-a で行頭, C-e で行末にカーソル移動する機能もつけました.


[戻る]