XREA.COM Logo XREA.COM Ad

スクリプト投稿スレ

74なまず:05/02/16 00:57 ID:TAHmCiOU
IMEが半角英数入力状態なのか、ローマ字入力状態かわからなくて、入力間違い
することがよくあります。LR_HLDというフリーソフトでは、キャレットの
点滅速度を変えてモードがどちらか教えてくれるのですが、私の環境では
相性が悪くてうまく動きませんでした。そこで、AHKで作ってみました。
以下の関数をSetTimerで適当な間隔で起動してください。200msecくらいが
適当でしょうか。

;
; IMEのOpen/Close("あ"か"A"か)をツールチップで表示する
; IMEがOpenなら、"あ"というツールチップをキャレットの上に出す
;
; 接頭語: dio_
; 引数: なし
; 戻り値: なし
DispIMEopen:
 ; キャレットが出ていなかったらリターン
 if A_CaretX =
  return

 ; 除外Windowはリターン
 IfWinActive, xyzzy
  return

 ; アクティブウインドウと同じProcessIDを持つclass IMEウインドウを見つける
 DetectHiddenWindows, On
 WinGet,dio_actpid,PID,A
 WinGet, dio_winids,list,ahk_class IME
 Loop, %dio_winids%
 {
  dio_winid := dio_winids%A_Index%
  WinGet,dio_pid,PID, ahk_id %dio_winid%
  If dio_pid=%dio_actpid%
  {
   ; SendMessageで、IMEがOpenかCloseか聞く
   SendMessage, 0x283, 5, 0, , ahk_id %dio_winid%
   if ErrorLevel = 0
   {
    ToolTip
   }
   else
   {
    dio_x := A_CaretX
    dio_y := A_CaretY - 20
    ToolTip, あ, %dio_x%, %dio_y%
   }
   return
  }
 }
return
70KB
名前: E-mail:
ファイル:
0ch BBS 2005-10-08