板 1- 前 次 新 レス
スクリプト投稿スレ
[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
前 次