CraftLaunch から RTM にタスクを登録する (1)

先日作成した CraftLaunch から Remember the Milk(以下 RTM)へタスクを登録するスクリプトを紹介してみます。

smail という送信専用のメールプログラム(フリーソフト)があることを知り、これを使ってランチャからメールを送信して RTM にタスクを追加できるのではないかと考えました。

まず、smail からのメール送信を試してみます。コマンドラインから下記のように入力して、RTM に登録できていることを確認し、rtm_sendmail2.bat としてバッチファイルにしておきます。

1
smail.exe -d -hsmtp.gmail.com -F"rtmtask.txt" ryskosn+hogefuga+import@rmilk.com

rtmtask.txt はタスク内容を記録するテキストファイル、ryskosn+hogefuga+import@rmilk.com は RTM のタスク登録用メールアドレスです。

RTM にメールからタスクを登録する方法は 2 種類あって、ひとつはメールの件名にタスクを記述して送信するやり方、もうひとつは件名には登録先のリストを指定して(空欄の場合は Inbox に入る)、メール本文にタスクを記述して送信するやり方です。

詳しくは下記の記事などに書かれています。

最初は CraftLaunch から引数としてタスク内容を渡せばよいかと考えたのですが、少し試してみたところ、既に登録したタスク内容が CraftLaunch の履歴に残って補完に引っかかるので、少々微妙です。

Windows の機能でテキスト入力欄を表示させるのが一番簡単そうだったので VBscript について調べて、InputBox 関数で実現できることがわかりました。

InputBox に入力したテキストを rtmtask.txt に書き込んで、smail で rtmtask.txt を本文としてメールを送信するバッチファイルを実行します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
' タスクの入力
Dim task
task = InputBox("タスクを入力する", "RTM quick")

' ファイルの操作
Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.OpenTextFile("rtmtask.txt", 2, False)

If Err.Number > 0 then
  WScript.Echo "Open Error"
else
  objFile.WriteLine task
end if

objFile.Close
Set objFile = Nothing
Set objFso = Nothing

' メールの送信
SendMail()

Sub SendMail()
  Set ws = WScript.CreateObject("WScript.Shell")
  ws.Run "rtm_sendmail2.bat", 7
 
  WScript.Echo("タスク追加 OK")
end Sub

あとはこの VBscript を CraftLaunch に登録すれば、いつでもササッとタスクを登録することができます。

ss_claunch無題
↑ CraftLaunch から上記スクリプトを実行します。rrtask というコマンド名を割り当てました。

ss_taskinput2無題
↑入力ダイアログが表示されるのでタスク内容を入力します。Enter を押すと(OK をクリックすると)バッチファイルが実行されて smail からメールが送信されます。

ss_taskok
↑登録完了のメッセージも表示するようにしてみました。

ちょっとスクリーンショットの撮り方がイマイチでした。

参照 URL

こちらもあわせてどうぞ

  1. CraftLaunch から RTM にタスクを登録する (2)
  2. Windows ではランチャ CraftLaunch を使う
  3. 正規表現でテキストを整形
  4. 毎日の習慣をサポートする Task Rise
  5. Python へ再入門 (11) 独自モジュールの定義

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>