「IME.txt」(2012/11/13 (火) 18:44:51) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
<div style="text-align:right;"></div>
<div class="hidemarubody">
<div style="font-family:monospace;margin-left:1em;font-size:85%;">
=============================================================================<br />
【 名 称 】 Autohotkey IME制御用 関数群 (コピペ/組込用)(<span class="filename tokubetu_0">IME.ahk</span>)<br />
【動作環境】 日本語入力システムが使える Windows系OS<br />
【製作言語】 AutoHotkey Scripts (<span class="url tokubetu_1">http://www.autohotkey.com/</span>)<br />
【 更新日 】 <span class="numeric">2012.11.10</span><br />
【 製作者 】 eamat.<br />
【 URL 】 <span class="url tokubetu_1">http://www6.atwiki.jp/eamat/</span><br />
=============================================================================
<div class="emph_line1">.■動作環境</div>
AutoHotkey : v1.0.46以降くらい<br />
OS : NT系 (<span class="numeric">98</span>系は確認環境がもうないので不明) <br /><br />
動作確認 : Windows XP x86 SP3<br />
Windows <span class="numeric">7</span> x64 SP1<br />
IME : WXG Ver <span class="numeric">4.03.027</span><br />
MS-IME <span class="numeric">2002</span> ver<span class="numeric">.8.1</span> (XP付属物)<br />
Office IME <span class="numeric">2007</span> ver12.0 (Microsoft Office OneNote <span class="numeric">2007</span>付属物)<br />
ATOK Ver <span class="numeric">16</span> (一太郎<span class="numeric">13</span> 付属物)<br />
SKKIME for WindowsXP Ver<span class="numeric">.1.5</span> (<span class="numeric">2009</span>/<span class="numeric">06</span>/<span class="numeric">28</span>)
<div class="emph_line1">.■概要</div>
IMEの各種状態の取得、セット関数群<br /><div class="emph_line1">.■注意事項</div>
<div class="emph_line2"> ・入力モードについて</div>
IMM32のAPIで見てるので、TSF系のIMEだと値がうまく取れないようです。<br />
(ちなみに GoogleIMEはTSFからIMM32に変更されており、<span class="numeric">2012</span>現在は値取れてます。<br />
<span class="url tokubetu_1">http://googlejapan.blogspot.jp/</span><span class="url tokubetu_2">2010</span><span class="url tokubetu_1">/</span><span class="url tokubetu_2">09</span><span class="url tokubetu_1">/google</span><span class="url tokubetu_2">-01348110x</span><span class="url tokubetu_1">.html</span> )<br /><br />
※ ローマ字/かな入力モードの状態取得について(IME_GetConvMode())<br />
[Ctrl]+[CapsLock]および 言語バー[KANA]ボタンで切替えた時の状態は取れない<br />
みたいです。[Alt]+[カタカナ]キーで切替えた場合の状態は取れました。<br />
(XP Pro SP2/ AHK <span class="numeric">1.0.47.06</span>にて確認)<br /><div class="emph_line2"> ・変換モードについて</div>
IMEの種類によって値はバラバラみたいです。<br />
とりあえずこちらで調査したところではこんな感じ。<br /><br />
MS-IME <span class="numeric">0</span>:無変換 / <span class="numeric">1</span>:人名/地名 / <span class="numeric">8</span>:一般 /<span class="numeric">16</span>:話し言葉<br />
ATOK系 <span class="numeric">0</span>:固定 / <span class="numeric">1</span>:複合語 / <span class="numeric">4</span>:自動 / <span class="numeric">8</span>:連文節<br />
WXG / <span class="numeric">1</span>:複合語 / <span class="numeric">2</span>:無変換 / <span class="numeric">4</span>:自動 / <span class="numeric">8</span>:連文節<br />
SKK系 / <span class="numeric">1</span>:ノーマル (他のモードは存在しない?)<br /><div class="emph_line2"> ・文字入力/変換中状態の取得について IME_GetConverting()</div>
<span class="numeric">2</span>ちゃんに貼られた IME_IsConverting() を元にしています。<br />
(<span class="url tokubetu_1">http://sites.google.com/site/agkh6mze/scripts#TOC-IME-</span>)<br />
Class名で判断しているため未知のIMEだと検知できません。<br />
単にClass名を足してけばいいだけっぽいので、未対応のIME使用の方は<br />
仕込んであるテストルーチンで適当に調べて追加してください。<br />
もしくはClass名をお教えいただければこちらで追加いたします。<br /><div class="emph_line1">.■使用方法</div>
ANSI\ :ANSI版 (本家/A32)<br />
UTF8\ :UTF<span class="numeric">-8</span>版 (U32/U64) ※ファイル形式違うだけ。中身はどちらも一緒です。<br /><div class="emph_line2">..◆組込元で #Include <span class="filename tokubetu_3">IME.ahk</span>して各関数を呼び出して使用</div>
<div class="emph_line2">..◆関数ライブラリスクリプトとして使用</div>
<span class="filename tokubetu_0">AutoHotkey.exe</span>のあるフォルダ内の「Lib」フォルダ、もしくは<br />
「%A_MyDocuments%\AutoHotkey\Lib\」に突っ込んどくと#Includeなしで使えます。<br /><div class="emph_line2"> ・必要関数だけをスクリプトにコピペして使用</div>
IME OFFるのにしか使わない方など、IME_SET()だけ切出してご自分のスクリプトに<br />
適当に貼付けて使って下さい。<br />
(内部CALLやめたので各関数間に依存関係はありません。)<br /><div class="emph_line1">.■削除方法</div>
全てのファイルを削除して下さい。<br />
本スクリプトではレジストリへの読み書きはしていません。<br /><div class="emph_line1">.■改変・再配布</div>
改変・再配布ともにご自由にどうぞ<br /><br />
一次配布場所<br />
<span class="url tokubetu_1">http://www6.atwiki.jp/eamat/</span><br /><div class="emph_line1">.■履歴</div>
<span class="emph_particu1"> 2012.</span><span class="numeric">11.10</span>
<div class="emph_line2"> ・AutoHotkey_L (A32/U32/U64)対応</div>
<div class="emph_line2"> ・WinTitleパラメータが実質無意味化していたのを修正</div>
<div class="emph_line2"> ・スクリプトのファイル形式をUTF-8(BOM付)に変更</div>
<br /><span class="emph_particu1"> 2009.</span><span class="numeric">12.03</span>
<div class="emph_line2"> ・IME 状態チェック GUIThreadInfo 利用版 入れ込み</div>
IEや秀丸<span class="numeric">8</span>βでIME状態が取れなかったのを対応した<br />
参考:<span class="url tokubetu_1">http://blechmusik.xrea.jp/resources/keyboard_layout/DvorakJ/inc/IME.ahk</span><br /><div class="emph_line2"> ・Google日本語入力β 向け調整</div>
入力モード 及び 変換モードは取れないっぽい<br />
IME_GET/SET() と IME_GetConverting()は有効<br /><br /><span class="emph_particu1"> 2009.</span><span class="numeric">07.02</span>
<div class="emph_line2">
・AutoHotkey スレッド part8 99にあった IME_IsConverting() をパクって追加</div>
<span class="url tokubetu_1">http://pc12.2ch.net/test/read.cgi/software/</span><span class="url tokubetu_2">1243005818</span><span class="url tokubetu_1">/</span><span class="url tokubetu_2">99-105</span><br />
> <span class="numeric">99</span> 名前:名無しさん@お腹いっぱい。[sage] 投稿日:<span class="numeric">2009</span>/<span class="numeric">06</span>/<span class="numeric">02</span>(火)<br />
>対象窓で、文字入力中or変換中なら<span class="numeric">1</span>を、変換候補窓が出ているなら<span class="numeric">2</span>を、<br />
>それ以外なら <span class="numeric">0</span>を返す。<br />
>ATOK2007とMS-IME8.1で確認。クラス名がバージョンの数値違いだけなら<br />
>別verでも通用するかも。<br /><div class="emph_line2"> ・パラメータのWinTitleの既定値を アクティブウィンドウにしたはいいが、</div>
何故だか妙に回りくどいことをやっていて、Last Found Window<br />
(<span class="url tokubetu_1">http://lukewarm.s101.xrea.com/Window.html#lastfoundwindow</span>)<br />
が有効にならない仕様になってたのを修正<br />
Last Found Windowを指定したいときは IME_GET("")とかやって下さい。<br />
(間抜けな仕様ですみません。)
<div class="emph_line2"> ・DllCallだと隠しウィンドウでも操作可能なようなので</div>
AHK内蔵のSendMessageコマンド → DllCall("SendMessaege")に。<br />
DetectHiddenWindowsのOn/Off廃止<br />
(もしかして環境によって問題が生じるようであればご一報下さい)<br /><br /><span class="emph_particu1"> 2008.</span><span class="numeric">12.10</span> コメント修正<br /><span class="emph_particu1"> 2008.</span><span class="numeric">07.11</span> (<span class="filename tokubetu_0">IME.ahk</span>)
<div class="emph_line2"> ・v1.0.47以降の 関数ライブラリスクリプト用にファイル名を戻した。</div>
つか結局丸ごと組込んで使うなら↓の コピペ用の修正いらなかったんじゃ…<br /><br /><span class="emph_particu1"> 2005.</span><span class="numeric">09.12</span> 非公開
<div class="emph_line2"> ・依存関係がうっとおしいので関数内で下層関数を呼び出すのを止めた。</div>
<div class="emph_line2"> ・v 1.0.34あたりからの Function パラメータ省略機能に対応</div>
アクティブウィンドウに対する制御は "A" を省略可能に。
<div class="emph_line2"> ・WinTitleを省略しやすいようSet系関数のパラメータ順を変更</div>
IME_SetConvMode(WinTitle,ConvMode)<br />
→ IME_SetConvMode(ConvMode,WinTitle="")<br />
IME_SetSentenceMode(WinTitle,SentenceMode)<br />
→ IME_SetSentenceMode(SentenceMode,WinTitle="")<br /><div class="emph_line2"> ・IME_ON() IME_OFF() IME_TOGGLE() 廃止</div>
ON/OFFセットは IME_SET(<span class="numeric">0or1</span>)で統括<br /><br /><span class="emph_particu1"> 2005.</span><span class="numeric">05.20</span> SandS同梱版 (<span class="filename tokubetu_0">IME_Func.ahk</span>)
<div class="emph_line2"> ・関数とAPIが使えるようになったので SUB → Function化</div>
面倒なんである程度カプセル化。リトライとか外してみる。<br />
アクティブウィンドウに対する制御はIME_STATUS("A")とかやって下さい。
<div class="emph_line2">
・A_DetectHiddenWindowsの状態を覚えておいてIMEへSendMessaegeした後</div>
戻すようにした。<br /><br /><span class="emph_particu1"> 2005.</span><span class="numeric">03.27</span> (<span class="filename tokubetu_0">IME.ahk</span>)
<div class="emph_line2"> ・投稿スレ86氏が張られた あぷろだ<span class="filename tokubetu_3">018.zip</span>のIME制御用外部プログラム</div>
(Cソース付き)をAHKスクリプトに書き直し。<br />
(AutoHotkeyを流行らせるアップローダ跡地 <span class="url tokubetu_1">http://lukewarm.s101.xrea.com/up/</span>)<br /><br /></div>
</div>
=============================================================================
【 名 称 】 Autohotkey IME制御用 関数群 (コピペ/組込用)(IME.ahk)
【動作環境】 日本語入力システムが使える Windows系OS
【製作言語】 AutoHotkey Scripts (http://www.autohotkey.com/)
【 更新日 】 2012.11.10
【 製作者 】 eamat.
【 URL 】 http://www6.atwiki.jp/eamat/
=============================================================================
.■動作環境
AutoHotkey : v1.0.46以降くらい
OS : NT系 (98系は確認環境がもうないので不明)
動作確認 : Windows XP x86 SP3
Windows 7 x64 SP1
IME : WXG Ver 4.03.027
MS-IME 2002 ver.8.1 (XP付属物)
Office IME 2007 ver12.0 (Microsoft Office OneNote 2007付属物)
ATOK Ver 16 (一太郎13 付属物)
SKKIME for WindowsXP Ver.1.5 (2009/06/28)
.■概要
IMEの各種状態の取得、セット関数群
.■注意事項
・入力モードについて
IMM32のAPIで見てるので、TSF系のIMEだと値がうまく取れないようです。
(ちなみに GoogleIMEはTSFからIMM32に変更されており、2012現在は値取れてます。
http://googlejapan.blogspot.jp/2010/09/google-01348110x.html )
※ ローマ字/かな入力モードの状態取得について(IME_GetConvMode())
[Ctrl]+[CapsLock]および 言語バー[KANA]ボタンで切替えた時の状態は取れない
みたいです。[Alt]+[カタカナ]キーで切替えた場合の状態は取れました。
(XP Pro SP2/ AHK 1.0.47.06にて確認)
・変換モードについて
IMEの種類によって値はバラバラみたいです。
とりあえずこちらで調査したところではこんな感じ。
MS-IME 0:無変換 / 1:人名/地名 / 8:一般 /16:話し言葉
ATOK系 0:固定 / 1:複合語 / 4:自動 / 8:連文節
WXG / 1:複合語 / 2:無変換 / 4:自動 / 8:連文節
SKK系 / 1:ノーマル (他のモードは存在しない?)
・文字入力/変換中状態の取得について IME_GetConverting()
2ちゃんに貼られた IME_IsConverting() を元にしています。
(http://sites.google.com/site/agkh6mze/scripts#TOC-IME-)
Class名で判断しているため未知のIMEだと検知できません。
単にClass名を足してけばいいだけっぽいので、未対応のIME使用の方は
仕込んであるテストルーチンで適当に調べて追加してください。
もしくはClass名をお教えいただければこちらで追加いたします。
.■使用方法
ANSI\ :ANSI版 (本家/A32)
UTF8\ :UTF-8版 (U32/U64) ※ファイル形式違うだけ。中身はどちらも一緒です。
..◆組込元で #Include IME.ahkして各関数を呼び出して使用
..◆関数ライブラリスクリプトとして使用
AutoHotkey.exeのあるフォルダ内の「Lib」フォルダ、もしくは
「%A_MyDocuments%\AutoHotkey\Lib\」に突っ込んどくと#Includeなしで使えます。
・必要関数だけをスクリプトにコピペして使用
IME OFFるのにしか使わない方など、IME_SET()だけ切出してご自分のスクリプトに
適当に貼付けて使って下さい。
(内部CALLやめたので各関数間に依存関係はありません。)
.■削除方法
全てのファイルを削除して下さい。
本スクリプトではレジストリへの読み書きはしていません。
.■改変・再配布
改変・再配布ともにご自由にどうぞ
一次配布場所
http://www6.atwiki.jp/eamat/
.■履歴
2012.11.10
・AutoHotkey_L (A32/U32/U64)対応
・WinTitleパラメータが実質無意味化していたのを修正
・スクリプトのファイル形式をUTF-8(BOM付)に変更
2009.12.03
・IME 状態チェック GUIThreadInfo 利用版 入れ込み
IEや秀丸8βでIME状態が取れなかったのを対応した
参考:http://blechmusik.xrea.jp/resources/keyboard_layout/DvorakJ/inc/IME.ahk
・Google日本語入力β 向け調整
入力モード 及び 変換モードは取れないっぽい
IME_GET/SET() と IME_GetConverting()は有効
2009.07.02
・AutoHotkey スレッド part8 99にあった IME_IsConverting() をパクって追加
http://pc12.2ch.net/test/read.cgi/software/1243005818/99-105
> 99 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/06/02(火)
>対象窓で、文字入力中or変換中なら1を、変換候補窓が出ているなら2を、
>それ以外なら 0を返す。
>ATOK2007とMS-IME8.1で確認。クラス名がバージョンの数値違いだけなら
>別verでも通用するかも。
・パラメータのWinTitleの既定値を アクティブウィンドウにしたはいいが、
何故だか妙に回りくどいことをやっていて、Last Found Window
(http://lukewarm.s101.xrea.com/Window.html#lastfoundwindow)
が有効にならない仕様になってたのを修正
Last Found Windowを指定したいときは IME_GET("")とかやって下さい。
(間抜けな仕様ですみません。)
・DllCallだと隠しウィンドウでも操作可能なようなので
AHK内蔵のSendMessageコマンド → DllCall("SendMessaege")に。
DetectHiddenWindowsのOn/Off廃止
(もしかして環境によって問題が生じるようであればご一報下さい)
2008.12.10 コメント修正
2008.07.11 (IME.ahk)
・v1.0.47以降の 関数ライブラリスクリプト用にファイル名を戻した。
つか結局丸ごと組込んで使うなら↓の コピペ用の修正いらなかったんじゃ…
2005.09.12 非公開
・依存関係がうっとおしいので関数内で下層関数を呼び出すのを止めた。
・v 1.0.34あたりからの Function パラメータ省略機能に対応
アクティブウィンドウに対する制御は "A" を省略可能に。
・WinTitleを省略しやすいようSet系関数のパラメータ順を変更
IME_SetConvMode(WinTitle,ConvMode)
→ IME_SetConvMode(ConvMode,WinTitle="")
IME_SetSentenceMode(WinTitle,SentenceMode)
→ IME_SetSentenceMode(SentenceMode,WinTitle="")
・IME_ON() IME_OFF() IME_TOGGLE() 廃止
ON/OFFセットは IME_SET(0or1)で統括
2005.05.20 SandS同梱版 (IME_Func.ahk)
・関数とAPIが使えるようになったので SUB → Function化
面倒なんである程度カプセル化。リトライとか外してみる。
アクティブウィンドウに対する制御はIME_STATUS("A")とかやって下さい。
・A_DetectHiddenWindowsの状態を覚えておいてIMEへSendMessaegeした後
戻すようにした。
2005.03.27 (IME.ahk)
・投稿スレ86氏が張られた あぷろだ018.zipのIME制御用外部プログラム
(Cソース付き)をAHKスクリプトに書き直し。
(AutoHotkeyを流行らせるアップローダ跡地 http://lukewarm.s101.xrea.com/up/)
表示オプション
横に並べて表示:
変化行の前後のみ表示: