Explorerの右クリックのコンテキストメニュー「Open Command Prompt Shell Extension」をckwで開くようにするパッチ
個人的に超絶便利に感じているOpen Command Prompt Shell Extensionですが、日本人で使っている方って意外と少ないのか、日本語のレビューが少ないです。(っていうか現状ない?)
似たようなソフトウェアですと、Microsoft謹製、PowerToyのOpen Command Window Hereがあるので、わざわざ必要ない!という方が大半なのでしょうか。
また、PowerToyを入れずとも、レジストリを弄れば自分で右クリックのコンテキストメニューを改造する事もできます。
しかし、これらの不便な所はディレクトリを選択した状態でないと、コマンドプロンプトを開くことができない点です。
えせ*nixラーな方々はよくsedやawk、ワンライナーでごにょごにょなんて事をする時があると思いますが、わざわざカレントから一個下がってコマンドプロンプトを出して、ごにょごにょなんてメンドクサとか思ったりしませんでしょうか。少なくとも私はあります。
しかし、このOpen Command Prompt Shell Extensionを使えば、カレントディレクトリを開いたまま、コマンドプロンプトを出す事が出来ます。今回はそんなOpen Command Prompt Shell Extensionのお話。
という長い前置きをもって、ようやく本題に入る訳ですが、このOpen Command Prompt Shell Extensionはcmd.exeで開いてしまう為、ckw+α使いとしては不便な事この上ありません。
せっかくオープンソースな事だし、自分でも使いたいので、このOpen Command Prompt Shell Extensionをckw.exeで開くようにするパッチを公開しておきます。
・・・三行修正しただけでパッチとか何面白いこと言ってるんですかって感じですね。僕もそう思います。本当にありがとうございました。
diff -urN CmdOpenSource-1.2.0.orig/CCmdOpen.cpp CmdOpenSource-1.2.0/CCmdOpen.cpp --- CmdOpenSource-1.2.0.orig/CCmdOpen.cpp Sun Mar 29 03:40:51 2009 +++ CmdOpenSource-1.2.0/CCmdOpen.cpp Thu Apr 02 08:54:42 2009 @@ -145,9 +145,9 @@ // Append "\cmd.exe" and close the quotes; fall back to just "cmd.exe" if // for some strange reason, GetSystemDirectory failed if (cchSysDir && cchSysDir < MAX_PATH) - SSStaticCpy(lpszCommandAppend, TEXT("\\cmd.exe\"")); + SSStaticCpy(lpszCommandAppend, TEXT("\\ckw.exe\"")); else - SSStaticCpy(szCommand, TEXT("cmd.exe")); + SSStaticCpy(szCommand, TEXT("ckw.exe")); // Load the localized command prompt title TCHAR szCmdTitle[MAX_CMDTITLE]; diff -urN CmdOpenSource-1.2.0.orig/CmdOpen.cpp CmdOpenSource-1.2.0/CmdOpen.cpp --- CmdOpenSource-1.2.0.orig/CmdOpen.cpp Sun Mar 29 03:39:53 2009 +++ CmdOpenSource-1.2.0/CmdOpen.cpp Thu Apr 02 08:54:22 2009 @@ -260,7 +260,7 @@ SSStaticCpy(szURLBase, szURLFull); szURLBase[21] = 0; // strlen("http://code.kliu.org/") - SSStaticCpy(lpszPathAppend, TEXT("cmd.exe")); + SSStaticCpy(lpszPathAppend, TEXT("ckw.exe")); RegSetSZ(hKey, TEXT("DisplayIcon"), lpszPath); RegSetSZ(hKey, TEXT("DisplayName"), TEXT(CMDOPEN_NAME_STR));
バイナリは以下のサイトに置いてあります。
自分で使える事は確認しましたが、不安な方は上記のパッチを当ててご自分でコンパイルされた方が宜しいかと。