Hatena::Groupretla

Klein*Klein RSSフィード

2010年06月05日

X-Finderのエイリアス機能を使ってアドレスバーから「プロンプトで実行」

| 01:15 | はてなブックマーク - X-Finderのエイリアス機能を使ってアドレスバーから「プロンプトで実行」 - Klein*Klein

X-Finderにエイリアス機能が実装されたので、X-Finder上からサクッとexeファイルを「プロンプトで実行」できるようになった。もちろん引数も付けて。

まず、「エイリアス」に以下のようなランチャを作る。

[名前]
フォーカスをプロンプトで実行
[パス]
%ComSpec% /k %Focused% %InputData%
[拡張]
c
[動作]
パスを実行

あとは、実行したいファイルをフォーカスした状態で、アドレスバーに

c -option

とか何とか打ち込んでエンター。fenrirのインスタントコマンドみたいな感じだ。

これだとプロンプトウィンドウが残るので、残らないようにしたければパス欄の/kを/cにする。

更に、フォーカスファイルじゃなくて名前を直打ちして実行ファイルを指定したいなら、%Focused%を削って以下のようにするだけ。

[名前]
プロンプトで実行
[パス]
%ComSpec% /k %InputData%
[拡張]
c
[動作]
パスを実行

アドレスバーに打つ時は以下のようになる。

c hoge.exe -option

アドレスバーに入力中はフォーカスの枠が消えるので、個人的にはこっちの方が分かりやすくて良い。

トラックバック - http://retla.g.hatena.ne.jp/retla/20100605

2010年04月19日

SMAILを使ってX-Finder上からファイルをGmailにバックアップ

| 00:02 | はてなブックマーク - SMAILを使ってX-Finder上からファイルをGmailにバックアップ - Klein*Klein

自分のGmailアカウントに添付ファイルとしてファイルを送りつけておくのは、ちょっとしたファイルのちょっとしたバックアップには最適。

fenrirからGmailにファイル添付して送信する方法については、ダイアリーの方で書いたことがあるが、ファイルを扱うんだからファイラーからやった方がいいと思い、X-Finderの右クリックからできるようにした。

SMAILの準備

まず、SMAILというコマンドライン型メール送信ソフトをインストール。適当なところに展開するだけのレジストリ不使用ソフト。

smail.exeを実行してサーバ等の設定。

  • SMTPポート番号:25
  • SMTP認証:AUTH PLAIN
  • SMTPユーザID:GmailアカウントID(@の左側のみ)
  • SMTPパスワード:Gmailのパスワード(設定保存後に暗号化される)
  • SMTP/SSL暗号化:チェックを入れる
    • ポート番号:465

X-Finderの設定

X-Finderのビルトインコマンドだけでもできることはできるんだけど、ビルトインコマンドだと、選択ファイルが複数の場合にパスが半角スペース区切りになってしまってSMAILの書式に合わない。つまり添付できるファイルが1個に限定される。

なので、X-Finderの最新(人柱)版で実装されたスクリプト機能を使って、選択ファイルの列挙をカンマ区切りにする。

以下、ランチャの「パス」欄の内容。

Script:JScript
Sel = WScript.Col(WScript.Env('Selected'));
Arr = new Array();
for (i = 0; i < Sel.Count; i++) {
 Arr.push('"' + Sel.Item(i) + '"');
}
WScript.Env('Att', Arr.join(','));
WScript.Env('Num', Arr.length);
Input = WScript.Exec('Input:"Gmailにバックアップ","選択中の%Num%個のファイルをGmailにバックアップします。","メールの件名を入力して下さい","[Backup]%FocusedName%"');
if (Input) {
 WScript.Exec('SW:0:%X-Finder%..\\smail\\smail.exe -hsmtp.gmail.com -fuser@gmail.com user@gmail.com -s"%InputData%" -a%Att%');
}

動作は実行。user@gmail.comは自分のGmailアドレスに書き換える。

スクリプトは素人なので、for文でコレクションに格納したパス群を配列に入れ直し、カンマ区切りで結合するという遠回りをしている。もっとうまくできそうだけど分からないのでやらない。

送信前に件名入力ダイアログを表示する。その時のデフォルトは"[Backup]フォーカス中のファイル名"にした。問題なのは、ここで入力をキャンセルしてもメール送信自体はストップしないこと。X-Finderのビルトインコマンドだけならキャンセルされるんだけど、ここではJScriptの中で使ってるのでそうならない。しかもJScriptにはこういう入力ダイアログを出す機能が無いらしい。X-Finder11-6-44からWScript.Exec内でのInput:にtrue/falseが返るようになったので、合わせて修正。

ちなみに、SW:0:でプロンプト画面を表示しないから、送信に失敗してても分からない。

他にもGmailのサイズ上限である25MBを超える場合は警告を出すとか、添付すると弾かれる拡張子(exeやzip)を含む場合に通知するとか、やろうと思えば色々できる。面倒だし必要ないからやらないけど。

トラックバック - http://retla.g.hatena.ne.jp/retla/20100419