57808


Windows上でMacのように別の言語で入力をしていても  
「かな」を押せば日本語入力の`ひらがな`モードになり、  
「英数」を押せば日本語入力の`英数`モードになるような設定を  
AutoHotkeyで行いたいのですがGoogleIMEをオフにして英数入力にすることができません。

`かな`の代わりに`カタカナひらがな`キーを`英数`の代わりに`無変換`キーを使用しています。

`IME.ahk`をこちらから取得してきて`#Include`を行い  
<https://github.com/karakaram/alt-ime-ahk>

[code]

        #Include IME.ahk
        #NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
        #Warn  ; Enable warnings to assist with detecting common errors.
        #InstallKeybdHook
        SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
        SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
    
        ; Thai: 0x41E041E
        ; Japanese: 0x4110411
    
        vk1Csc079::
          PostMessage, 0x50, 0, 0x41E041E,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST
        Return
    
        vkFFsc070::
          PostMessage, 0x50, 0, 0x4110411,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST
          IME_SET(1)
        Return
    
        vkEBsc07B::
          PostMessage, 0x50, 0, 0x4110411,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST
          IME_SET(0)
        Return
    
[/code]

のように設定することでタイ語と日本語の行き来はできるようになったのですが、  
タイ語のキーボード状態で無変換を押した場合、日本語入力にはなるのですが、  
`ひらがな`の状態になってしまいます。

`vkFFsc070`と`vkEBsc07B`はそれぞれタイ語のキーボード配置での  
`カタカナひらがな`と`無変換`キーですが、

日本語入力状態では`vkF2sc070`と`vk1Dsc07B`がそれぞれ該当します。

IMEをAutoHotkeyの機能でオフにするにはどうすればよいでしょうか？


CC BY-SA 3.0
2016-05-20T19:41:44.363
25050
2019-09-03T11:15:46.237
3271
question
windows autohotkey
AutoHotkeyでGoogleIMEの入力を英数入力に切り替える方法


AutoHotKeyの機能ではなく、GoogleIME側の機能を利用してIMEオンオフを切り替えるのはいかがでしょうか？

  1. Google 日本語入力プロパティ の `一般` タブ内、 `キー設定の選択` から `カスタム` を選び、編集する
  2. `モード：入力文字なし` で `入力キー：かな` 、 `コマンド：IMEを無効化` を追加する
  3. `モード：直接入力` で `入力キー：英数` 、 `コマンド：IMEを有効化` を追加する
  4. `OK` をクリックし、設定を適用させる

この操作を行うことで、

[code]

    「かな」を押せば日本語入力のひらがなモードになり、
    「英数」を押せば日本語入力の英数モードになるような設定
    
[/code]

は実現出来るかと思います。


CC BY-SA 4.0
2018-08-23T06:44:25.293
47757
2018-08-23T06:44:25.293
29826
25050
answer


Autohotkey
ではIMEの状態をとるのが難しいようなのでIMEの状態を切り替えるのではなくWindowsの入力言語として英語(日本語キーボード)を追加し、入力言語自体を追加することで解決しました。

日本語IMEを使ってるときはアルファベットを使わずに常に「ひらがな」を使うようにしています。

また無変換キーなどは入力中の言語によって送信されるキーコードが変化するため、まず`ChangeKey`を用い、F13~F15の使ってないキーに変更してからAutohotkeyの設定を行っています。

質問時はAutohotkeyのv1を使っていたのですが、以下のコードはv2のものになります。

[code]

    ; 無変換(ひらがな入力)
    F13::
    PostMessage 0x50, 0, 0x4110411,, "A"
    return
    
    ; 変換(英数入力)
    F14::
    PostMessage 0x50, 0, 0x4110409,, "A"
    return
    
    ; ひらカナ(別言語)
    F15::
    PostMessage 0x50, 0, 0x4120412,, "A"
    return
    
[/code]


CC BY-SA 4.0
2019-09-03T11:15:46.237
57808
2019-09-03T11:15:46.237
3271
25050
answer