AutoHotKeyでL.P.Utterっぽく日時を出力してみた。

 本家で公開してる自作ツールの中に、L.P.Utterという日時を出力するだけの小さなソフトがある。あるんだが、実は1年以上使っていない(ぐへー。
 いや、日時は相変わらずファイル名とかに重用してるんだけども、今はAHKで出力させてるっていう。当時はリソースに限りがあったので、常駐させない方向でああいうソフトを作ったのだけど、今の環境ならAHKにやらせるのが自然だなぁ、と。

$^+t::
  keywait, Ctrl
  keywait, t
  loop, parse, A_Now
  {
    if (A_Index = 13)
      break
    send, {Numpad%A_LoopField%}
  }
return

 sendがこれで通ることに気づくまで、すごい回りくどいスクリプトだった。

 ちなみに。なんでいちいちNumpad使ってるかっていうと、MS IMEの「テンキーからの入力」オプションを「常に半角」にしておけば少し幸せになれるからです。

 IME制御関数(http://d.hatena.ne.jp/morakana/20080213/1202876561)を使うなら普通にFormatTime使えばよい。

$^+t::
  ImeStatus := IME_IsON(WinExist("A"))  ; ONなら1、OFFなら0
  IME_ON(WinExist("A"), False)
  keywait, ctrl
  keywait, t
  FormatTime, TimeBuf, , yyyyMMddHHmm
  Send, %TimeBuf%
  if ImeStatus
    IME_ON(WinExist("A"), True)
return






バリエーション

 A_Indexを判定してsendやcontinu使ったりすれば簡単にカスタマイズできる。

 以下、ISO8601形式で出力するスクリプト(ins/del要素のdatetime属性入力する時に便利)。

$^+g::
  keywait, Ctrl
  keywait, g
  loop, parse, A_Now
  {
    send, {Numpad%A_LoopField%}
    if (A_Index = 4 || A_Index = 6)
      send, -
    else if (A_Index = 8)
      send, T
    else if (A_Index = 10 || A_Index = 12)
      send, :
  }
  send, {NumpadAdd}{Numpad0}{Numpad9}:{Numpad0}{Numpad0}
return

 以下、RecordNow ver.4.6がデフォルトで出力するボリュームラベルと同じ形式で出力するスクリプト(ド・ニッチッ!?

$^+d::
  keywait, Ctrl
  keywait, d
  loop, parse, A_Now
  {
    if (A_Index = 1 || A_Index = 2)
      continue
    if (A_Index = 13)
      break
    send, {Numpad%A_LoopField%}
    if (A_Index = 8)
      send, _
  }
return

 使いようによってはIME制御を加えても便利。「もらかなです。AutoHotkey IMEの制御をする編」を参考にっていうか関数コピペして――。

$^+t::
  ime_status := IME_IsON(WinExist("A"))
  IME_ON(WinExist("A"), False)
  keywait, ctrl
  keywait, t
  loop, parse, A_Now
  {
    if (A_Index = 13)
      break
    send, {Numpad%A_LoopField%}
  }
  Sleep, 100
  if (ime_status = 1)
    IME_ON(WinExist("A"), True)
return

 みたいな感じ。IMEの反応が追いつかないのでSleep入れた。量はお好みで。


[PR]
by lordnoesis | 2009-03-18 17:12 | テクノロジ | Trackback | Comments(0)
トラックバックURL : http://poimono.exblog.jp/tb/11127971
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
名前
URL
画像認証
削除用パスワード

※このブログはコメント承認制を適用しています。ブログの持ち主が承認するまでコメントは表示されません。

ブログトップ | ファンになる