Windows 8 MS-IME problem
Hamayama opened this issue · 5 comments
Windows 8 のPCで使用していますが、漢字キーを押してもMS-IMEの日本語入力に切り替わりません。
emacs-24.4-IME-patched.zip と emacs-24.4-IME-patched-generic-cpu.zip の両方で発生します。
現象としては、以下のページの内容に近いようです。
http://blechmusik.hatenablog.jp/entry/2013/07/08/023920
http://sourceforge.jp/projects/gnupack/forums/22824/34508/
同じ現象は、下記のページの emacs-24.4-simple-ime.zip でも発生します。
http://cha.la.coocan.jp/doc/NTEmacs.html
今のところ回避策としては、Emacsの起動後に以下のいずれか1つの操作を行えば、日本語入力可能になります。
(1)マウスでウィンドウを移動する。
(2)マウスでウィンドウをリサイズする。
(3)メニューバーが表示されていれば、F10キーを2回押す。
それで、(3)の操作に近いものを自動で行えないかと考えて、
.emacs.d フォルダに sendesc.js というファイルを以下の内容で作成しました。
var shell = new ActiveXObject("WScript.Shell");
WScript.Sleep(100);
shell.SendKeys("{ESC}");
shell = null;
そして、init.el の最後に以下の記述を追加しました。
;; ***** for MS-IME *****
(menu-bar-open)
(defun send-esc ()
(start-process "my-proc" nil "cscript.exe"
(expand-file-name "~/.emacs.d/sendesc.js")))
(add-hook 'emacs-startup-hook 'send-esc)
こうすると、自分の環境では日本語入力可能になりました。
ただし、起動時にメニューバーを表示しておく必要があります。
また、自分の環境ではSleep時間を50msecにすると効果がなかったので、
環境によってSleep時間の調整が必要かもしれません。
確認環境
OS : Windows 8 (64bit)
CPU : Core i5
IME : MS-IME 2012
報告ありがとうございます。
NTEmacs64のビルド環境はWindows7で動作確認もWindows7のみでした。
近々Windows8の環境を整える予定なのでその際に検証してみます。
回避作を見るとウィンドウフォーカスの問題な気がするので…runemacs.exeではなく直接emacs.exeを起動した時にどうなるかが気になります。
自分のほうで何か分かったら追記します。
長期間放置していて申し訳ありませんでした。
その後Windows8へは移行する事はなくWindows10へ移行してしまいました。
ひとまずWindows10で確認してみたしたが、指摘された現象は発生しませんでした。
もはや現状では対処する事も難しい為、こちらの件はクローズさせて頂きます。すみません。
クローズの件、了解です。
本件、その後情報があり、
言語の詳細設定の「アプリウィンドウごとに異なる入力方式を設定する」
にチェックを入れていると、発生するようです。
この設定は、複数のIMEを、アプリごとに切り換えて使用するときに、チェックを入れるもののようです。
(Windows 8 のときは、MS-IME の ON/OFF 状態を、アプリごとに別々の状態にするかどうかの設定でしたが、
Windows 8.1 の頃に仕様が変わりました。Windows 10 にも 8.1 と同じ仕様で残っているようです。)
今はチェックをはずして、正常に使えています。ありがとうございます。
<参考URL>
- http://answers.microsoft.com/ja-jp/windows/forum/windows_10-ime/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%A6%E3%82%A4/dd70bd74-df83-466e-b30c-fff8b2496e6b?auth=1
- https://admnote.paix.jp/2016/06/windows10%E3%81%A7%E3%82%A2%E3%83%97%E3%83%AA%E6%AF%8E%E3%81%AB%E4%BD%BF%E7%94%A8ime%E3%82%92%E8%A8%98%E6%86%B6%E3%81%95%E3%81%9B%E3%82%8B%E8%A8%AD%E5%AE%9A/
詳細な説明ありがとうございます。
なるほど、そういう事ですか…
問題を共有する為に README.md の注意事項にこちらの issue を追記しました。
ここに書かれている回避方法がたいへん有用でしたので,ご報告させていただきます.
いままでまったく問題なく日本語 IM が起動できていたのですが,先日の(2018年 5月 2日の) Windows Update を適用したあとにこの現象が発生するようになりました.おそらくは,「Windows 10、バージョン 1803 の機能更新プログラム」で何か変わったのだろうと思います.
言語の詳細設定(キーボードの詳細設定)の「アプリウィンドウごとに異なる入力方式を設定する」は,チェックをはずしてあります.以前と変えていません.
日本語 IM は,Google 日本語入力をデフォルトの IM に設定しています.これも,以前と変えていません.
そして,ここに書かれている回避方法で無事に回避できました.3とおりのどれでも回避できました.
(1)マウスでウィンドウを移動する。
(2)マウスでウィンドウをリサイズする。
(3)メニューバーが表示されていれば、F10キーを2回押す。
また,それを自動化する .js, .el でも同様に回避できました.
ただ,私の環境が重たいのか,
WScript.Sleep();
でのスリープは 200msec 以上でないと効き目がありませんでした.