2012-09 / 2012-09-24

前のエントリ: CraftLaunch 3.x に移行 [win]
次のエントリ: CSファーストステージ1戦目 / 西武ライオンズ戦@西武ドーム [diary]

CraftLaunch + だいなファイラでスラッシュ(/)区切りのパス取得
2012-09-24-1 / カテゴリ: [アプリ][win] / [permlink]

だいなファイラーの基本機能に「対象のフルパス名をクリップボードにコピー」があってかなり便利なんだけど、ディレクトリセパレータが逆スラッシュ(\)なんだよね。
んで、今月入れ替えたCraftLaunch 3.xAPIリファレンスに、normPath(path)というディレクトリセパレタの\と/を入れ替えるAPIがあったのでなんとか組み合わせて/区切りのフルパスが取得できないかと設定組み立ててみた。

--- config.py.bak	2012-09-05 20:23:16.801325800 +0900
+++ config.py	2012-09-24 21:05:18.610191100 +0900
@@ -152,2 +152,10 @@
 
+    # ディレクトリセパレタ"/"でのフルパスの取得
+    #   dynaで以下のコマンド登録する
+    #   実行ファイル: c:\local\appli\clnch\clnch.exe
+    #   パラメタ: --execute="_setslash;$F"
+    def set_slash_path(arg):
+        setClipboardText(normPath(arg[0].decode("utf8")))
+    window.launcher.command_list += [ ( u"_setslash", set_slash_path ) ]
+
 # リストウインドウの設定処理

だいなファイラの設定は、外部コマンドに
名前setclippath(任意)
実行ファイルCraftLaunchのパス
パラメタ--execute="_setslash;$F"
みたいに設定。
で、この外部コマンドにショートカットキー割り当てればオーケー

スクリプトは、コマンド "_setslash" の呼び出し時にパスを引数で渡すように(だいなの--execute="_setslash;$F"の部分)して、自作関数の set_slash_path(arg) で normPath() を呼んでから、setClipboardText()で結果をクリップボードにセットする。
はじめは arg[0] を直接 normPath() に入れてたけど、日本語を含むパスで
'ascii' codec can't decode byte 0xe3 in position 28: ordinal not in range(128)
見たいなエラーがコンソールに出力されてパスのコピーが実行されなかったので、明示的にエンコードを utf8 と指定した。(だいなファイラがutf8版の場合だから?SJIS版は未確認)
前のエントリ: CraftLaunch 3.x に移行 [win]
次のエントリ: CSファーストステージ1戦目 / 西武ライオンズ戦@西武ドーム [diary]

2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2013-05-02 16:12