Ticket #25031

IMEがONの状態でNVDAを終了するとシステムが異常終了する

Open Date: 2011-05-01 22:15 Last Update: 2012-04-20 22:08

Reporter:
Owner:
(None)
Type:
Status:
Closed
Component:
MileStone:
Priority:
8
Severity:
5 - Medium
Resolution:
None
File:
None

Details

shinke さん [nvda-japanese-users:372] [nvda-japanese-users:373] skype使用中にnvdaを終了させたときに発生する不具合

現象 skypeを使用中に日本語入力操作をした後、nvdaを終了させるとnvdaの警告音が発生してskypeが異常終了する。

検証環境 nvda2011.1.1j、WinXP Pro(SP3)、MS-IME2002 ver8.1、skype ver.5.1.0.104

暫定的な対策としてnvdaの読み上げモード切替(NVDA+sキー)により対応いただけないでしょうか。


マーチン@まほろば さん [nvda-japanese-users:376] [nvda-japanese-users:377]

SKYPE だけでなく、VISTAのメモ帳でも起きました。XPのメモ帳では起きていません。

現象 1.nvdaを起動した状態で、メモ帳を開いて 2.日本語入力をON にして、文字を入力し確定する。 3.nvda を終了する。 4.メモ帳で、文字を入力しようとすると、 「メモ帳は動作を停止しました。」のダイアログが表示される。

検証環境 ・nvda2011.1.1j、WinVista Home(SP2)、MS-IME2010(14.0,4737,1000)

なお、以下の環境では、起きていません。 ・nvda2011.1.1j、WinXP Home(SP3)、MS-IME2003 9.0.8161.0

前のメールに追加ですが、Excel 2007 でも同様な現象が起きました。

現象 1.nvdaを起動した状態で、Excel 2007を開いて 2.日本語入力をON にして、文字を入力し確定する。 3.nvda を終了する。 4.Excelで、文字を入力しようとすると、 「Microsoft Office Excelは動作を停止しました。」のダイアログが表示される。

検証環境 ・nvda2011.1.1j、WinVista Home(SP2)、MS-IME2010(14.0,4737,1000) Excel 2007

なお、本家 nvda 2011.1.1 では、メモ帳でも Excel でも発生しませんでした。

追記:上記の Vista は32bit環境とのこと。


もり@静岡 (@mikasa231) さん [nvda-japanese-users:385]

表題の件、 VC2008 でプログラムをつくって確認しましたが、 下記の特徴があるようです。

【確認環境】Windows 7 Professional v6.1 (ビルド7600) 64bit       (SP1未適用)

■32ビットコードでコンパイルしたアプリでは、  IME入力中の読み上げがなされる。  NVDA終了してから入力すると異常終了(アクセス違反)発生。

■64ビットコードでコンパイルしたアプリでは、  IME入力中の読み上げがなされず、  NVDA終了してから入力しても異常終了(アクセス違反)発生せず。

どうも、32ビットアプリ時のIME読み上げ関連で問題が起きているようです。 なお、エラーで落ちるときは、対象アプリの TransrateMessage関数が実行されているときです。 直前のWindowProcには WM_GETTEXT が飛んできているようです

ここで、「32ビットアプリで、IME読み上げがない場合にどうなるか?」を 検証しようと思いましたが、NVDAメニュー→キーボード設定→入力読み上げを OFFにしてもIME読み上げをカットすることができず、検証できませんでした。


追記:Ticket ID: 25047 に一部の事象を分離しましたが、再検討して、このチケットのタイトルを変更し、再統合しました。

Ticket History (3/19 Histories)

2011-05-01 22:15 Updated by: nishimoto
  • New Ticket "64bit環境における32bitアプリの異常終了" created
2011-05-02 08:04 Updated by: nishimoto
  • Details Updated
2011-05-02 08:12 Updated by: nishimoto
  • Details Updated
  • Summary Updated
2011-05-02 08:35 Updated by: nishimoto
  • Summary Updated
2011-05-26 18:54 Updated by: nishimoto
Comment

この問題は以下のように整理したいと思います:

1:アプリが64bitの場合(OS が 64bit の場合)

(1-A)IME操作を読み上げないという問題

(1-B)システムの動作が不安定になる可能性

2:NVDAの起動終了とIMEのON/OFFのタイミングに関する問題

現象:IMEがONの状態でNVDAを終了するとシステムが異常終了する。

回避策:NVDAを一時的に喋らせないようにするときには、NVDAを終了しないで、読み上げモードの切り替えを使うとよい。

2011-07-28 23:03 Updated by: nishimoto
Comment

概要を「2011.1.1jにおけるアプリの異常終了」から「IMEがONの状態でNVDAを終了するとシステムが異常終了する」に改題します。

本チケットでは今後、この問題に限って扱います。

過去のご報告と重複しますが、問題を再現する手順と詳細は以下の通りです:

  • Windows XP SP3, IE8, Microsoft IME Standard 2002 ver 8.1
  • テキストサービスのチェックボックスは上から ON/OFF (詳細なテキストサービスをすべてのプログラムに拡張する)
    • OFF/OFF および OFF/ON の場合には下記は再現しない。メモ帳がTSFベースで動いている場合に限られる可能性。
  • NVDA 日本語版 2011.1.1j3 ポータブル版を起動
  • メモ帳を起動してフォーカスを移動
  • IMEをONにする。nihongo と入力(キーエコー)、スペースで変換(詳細読み)、Enter で確定。IMEはONのまま。
  • NVDA を終了する。
  • メモ帳に戻る。引き続き日本語ON状態で nihongo と入力しようとすると「問題が発生したため、notepad.exe を終了します」が表示される。
2011-07-28 23:04 Updated by: nishimoto
  • Summary Updated
2011-07-31 21:59 Updated by: nishimoto
Comment

IMEがONの状態でNVDAを終了すると、その後アプリケーションが異常終了する、という現象(7月28日コメント)について、さらに以下を確認しました。

(1)「問題が発生したため notepad.exe を終了・・・」について、詳細を表示すると障害発生モジュールは msctf.dll とされています。

(2)Windows XP SP3 + 2010.2j でもこの現象は発生します。

(3)Windows 7 x64 + Microsoft IME + jpdev110731 の組み合わせで、メモ帳(64bit) と Notepad++ (32bit) で確認したところ、やはり上記の手順で操作すると、NVDA 終了後にアプリに日本語入力をしようとすると、アプリ不正終了(msctf.dll の問題、またはアクセス違反)になります。

2011-09-30 16:13 Updated by: nishimoto
  • Owner Update from (None) to mshinke
  • Component Update from (None) to IME
  • Priority Update from 5 - Medium to 8
Comment

メモ帳などのアプリケーションで、IMEがONのままNVDA日本語版を終了して、アプリケーションに戻って日本語を入力しようとすると、そのアプリケーションが不正終了します。

この問題は 2011.2j でも解決できていません。NVDA の読み上げを一時的に止めたい場合は、NVDA を終了せず、NVDA + S による読み上げモード切替でご対応ください。

NVDA + S を押すごとに「読み上げモード オフ」「読み上げモード ビープ」「読み上げモード トーク」に順番に切り替わります。

2011-09-30 16:30 Updated by: nishimoto
  • Owner Update from mshinke to (None)
2011-10-30 16:27 Updated by: nishimoto
Comment

下記のコミットで改善された可能性があります。

lp:~nishimotz/nvdajp/betterInput 4211 および 4213

注釈:TSFに関するSinkの解除処理を TLS::InternalDestroyTLS() に追加。アプリ側のスレッドで実行されるようになった。

関連情報 http://ja.nishimotz.com/text_services_framework

2011-10-30 18:33 Updated by: nishimoto
Comment

dllmain を修正してスレッドのデタッチのときにTLSのDestroyが呼ばれるようにしました。

lp:~nishimotz/nvdajp/betterInput 4214

2011-11-01 15:49 Updated by: nishimoto
Comment

NVDA終了のOKボタンを押した直後にFirefoxにフォーカスが戻って、そこでSinkを登録してしまう問題に対応するために、 フォーカス移動イベントでSinkの登録をしない実装に変えてみました。

いまのところ不具合が発生していない x86 アプリは Skype, Firefox, Notepad++ です。

lp:~nishimotz/nvdajp/betterInput 4233

2011-11-02 01:04 Updated by: nishimoto
Comment

不具合が見つかったので再検討します。

lp:~nishimotz/nvdajp/betterInput 4222 から、一度候補選択をして確定をすると、それ以降の未変換文字を読みあげなくなる。

同じく 4232,4233 から、変換キーを押して表示される候補ウィンドウの中の漢字候補をスペースキーで選択するときに途中から読み上げなくなる。

2011-11-02 17:13 Updated by: nishimoto
Comment

以下のアプリにおける改善を確認しました。

x86 アプリ:Microsoft Word 2010, Skype, Firefox 7, Notepad, Notepad++

x64 アプリ:Notepad

以下のアプリでは、日本語入力の読み上げは不完全ですが、クラッシュしにくくなりました:

x86 アプリ:Wordpad, IE8

x64 アプリ:Wordpad, IE9

変更内容は下記のリビジョンです:

lp:~nishimotz/nvdajp/betterInput 4237

2011-11-07 09:39 Updated by: nishimoto
Comment

スナップショット jpdev111105 にて、以下の現象が確認されています。

・「全角・半角キー」を押したときに「日本語オン」「日本語オフ」を読みあげない。

・変換キーを押した直後に選択される候補を読みあげない。

・x64 環境でメモ帳の日本語サポートが有効にならない。

2011-12-22 22:42 Updated by: nishimoto
Comment

2011.3j にて改善されましたが、完全ではないため、マイルストーンを 2012.1j に変更します。

2012-04-13 13:58 Updated by: nishimoto
Comment

Windows 7 sp1 x64 + Word 2010 (x86) で日本語入力と NVDA 2012.1j-beta2 の起動・終了を交互に行うと、確実ではありませんが Word がクラッシュすることがあります。

確実な対策ではありませんが、nvdajpime の終了処理のタイミングを遅らせることにしました。

lp:~nishimotz/nvdajp/releases_2012.1 rev 5059

2012-04-20 22:08 Updated by: nishimoto
  • Ticket Close date is changed to 2012-04-20 22:08
  • Status Update from Open to Closed

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login