ぺんちゃん日記

食と歴史と IT と。 Web の旅人ぺんじろうが好奇心赴くままに彷徨います 。

【AutoHotkey】はてなブログの新規エントリを作成するショートカットを用意する

f:id:yasushiito:20190403184928p:plain

はじまり 。

前回の記事ではてなブログの新規エントリー作成で運用でカバーしなければならない問題がありました。。
ブログヘッダーから[記事を書く]リンクで入力フォームを開くと、新規エントリタブを見つける処理で失敗するんでしたね。。
そこで新規エントリーを作成するショートカットを作りたいと思います。。
この際なので音声入力ウインドウに用意されたテキストをタイトルに設定しつつ記事を起こすようにしましょうか。
f:id:yasushiito:20190403183636p:plain

ちょっと特殊な事情が。

electron で作成したアプリeltest.exef:id:yasushiito:20190403184928p:plainがキーボードショートカットに対応できるようになったので、音声入力ウィンドウのテキスト加工しながらクリップボードに放り込むことができます。
f:id:yasushiito:20190403184029p:plain
具体的には特定の単語を置換できたりします。
タイトル部分の見出しなどを比較的簡単に作り出せます。
この部分は残念ながら皆さんの環境では再現できないので 各自工夫が必要ですね。
音声入力ウィンドウをアクティブに切り替えて、入力された文字をすべて選択して、クリップボードにコピーしてくださいね。

実装。

出来上がったスクリプトはこんな感じです。

#insert::
    editor := 0
    work := 0
    WinGet, windows, list
    loop ,%windows%
    {
        idstr := "ahk_id " . windows%A_Index%
        WinGetTitle,title,%idstr%
        pos := RegExMatch(title,"- Google Chrome$")
        if pos > 0
        {
            pos := RegExMatch(title,"音声入力用")
            if pos > 0
            {
                WinGet,editor,ID,%idstr%
            }
            else
            {
                WinGet,work,ID,%idstr%
            }
        }
    }
    If (editor = 0) return
    If (work = 0) return
    Sleep 500
    WinActivate,ahk_id %work%
    Sleep 500
    Send,^t
    Sleep 500
    
    SendInput,http://blog.hatena.ne.jp/xxxxxxxxxxx/xxxxxxxxxx.hatenablog.com/edit
    Send,{enter}
    Sleep 3000
    Send,+{Tab}
    Sleep 500
    Process,Exist,eltest.exe
    if ErrorLevel = 0
        return
    WinActivate,ahk_pid %ErrorLevel%
    Sleep 500
    Send,^d
    Sleep 5000
    WinActivate,ahk_id %work%
    Sleep 500
    Send,^v
    Sleep 500
    Send,{Tab}
    Sleep 500
    return

操作手順はこんな感じです。

  • Chrome の作業ウィンドウをアクティブにする。
  • 新規タブを開く。
  • URL バー に新規エントリー用の URL を落ち込んでページを開く。
  • 本文のテキストエリアにフォーカスがあるのでタイトルの方に移す。
  • 勝手アプリの実行ファイル名eltest.exeからプロセス ID を取得してそれをアクティブウィンドウにする。
  • ショートカットキーctrl+eのキーコード送って音声入力ウィンドウのテキストをクリップボードにコピーする。
  • もう一度作業ウィンドウをアクティブにして新規エントリページに戻る。
  • クリップボードの内容をペーストして本文にフォーカスを戻す。

割り当てるキーは Windows + insert キーの組み合わせでどうでしょうか。。
将来的にはタイトル内のキーワードから特定のアイキャッチ画像を自動的に突っ込みたいですね。