2011年3月23日水曜日

AutoHotkey でWindows Live Writer にソースコードを貼り付ける (2) - リボンUIを採用したバージョンへの対応

1. Windows Live Writer 2011 にバージョンアップしたら、ソースコードを貼り付けるための AutoHothey のスクリプトが動かなくなった

ブログを書くための Windows Live Writer は、長らく過去のバージョンを利用してきた。リボンUI が採用される前のもの。

ブログにソースコードを載せる場合、google-code-prettify で色付けされるようにしている。このとき、AutoHotKey を利用して、Windows Live Writer にソースコードを貼り付ける処理を自動化した。

最近、Windows LiveWriter を、リボン UI を採用した、Windows Live Writer 2011 にバージョンアップした。その結果、上記スクリプトが正常に動かなくなったので、スクリプトを修正した。

 

2. 修正したスクリプトの起動と使い方

前提 : AutoHotkey ( Installer for AutoHotkey_L ) がインスールされていること。

  1. スクリプト pasteHTMLCode2Writer.ahk  をダウンロードした後、ダブルクリックして起動。
  2. タスクトレイに アイコン 081002-002 が表示される。

 

使い方
  1. Windows Live Writer で、予めソースコードを挿入したい位置にカーソルを移動。
  2. ソースコードが書かれている、アプリケーションのウィンドウをアクティブにし、対象のコードを選択。
  3. Ctrl + Shift + Q を押すと、選択したソースコードが Windows Live Writer に貼り付けられる。

 

3. スクリプトの実装

スクリプトの内容は、以下の通り。

^+Q::                      ; Ctrl + Shift + Q
Send ^c                   ; 対象のソースコードをコピー
Send !{Tab}               ; Alt + Tab でウィンドウを切り替える

; Windows Live Writer がアクティブになるのを待つ
SetTitleMatchMode, 2
WinWaitActive, Windows Live Writer, , 2

; クリップボードの内容を変更
clipboard = <pre class="prettyprint">%clipboard%</pre>

Send !+hvsh{Enter}		; Alt+h v s h Enter
return

( cf. jutememo's gist: 881589 — Gist )

以前のスクリプトは、コードを貼り付ける処理において、Sleep コマンドを利用せざる負えなかった。

今回は、Send コマンドによりキー入力を連続しても問題がなかったので、Sleep コマンドは使わなかった。