Ticket #30056

既定の入力システムがMicrosoft Office IME 2010のときに「名前をつけて保存」で動かなくなる

Open Date: 2012-11-09 08:05 Last Update: 2013-07-29 20:09

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

Details

メモ帳を起動してテキストを何文字か入力し、保存せずにメモ帳を閉じようとするとメモ帳ごと落ち、音声も止まってしまいます。 再現手順は

 1 メモ帳を起動。  2 メモ帳に「中村研究室! @nakalabo」とキーボードで入力。  3 Ctrlキーを押したままF4キーを押す。

メモ帳が停止してしまい、完全に音声まで出なくなります。 NVDAのバージョンは jpdev121109、OSは Windows7 32bit です。

類似する環境ではどうでしょうか?

Ticket History (3/21 Histories)

2012-11-09 08:05 Updated by: nakalabo
  • New Ticket "メモ帳に文字入力してそのままメモ帳を閉じようとするとメモ帳ごと落ちる" created
2012-11-09 08:49 Updated by: nishimoto
Comment

ご報告ありがとうございます。

類似する不具合は以前からあり、場当たり的に対応してきたのが現状です。

IME をどのタイミングで、どのようにお使いになったか、もう少し詳しく教えていただけますか?

また、確実に再現されるでしょうか?

もしそうだとしたら NVDA の過去のバージョン(例えば 2012.2.1jp)と比較していただくことは可能ですか?

2012-11-09 10:13 Updated by: nakalabo
Comment

この現象がどの頻度で起こるのかを調査する為に20回同じようにしましたが、こちらの環境では20回中20回(100%)発生しています。 そして NVDA の以前のバージョンである 2012.2.1jp でも同じようにして試してみましたが 2012.2.1jp では NVDA 本体は落ちますが、メモ帳では「動作を停止しました」というメッセージが出ておらず、落ちた NVDA を再起動することで操作ができるようでした。

再現の手順は、

 1 パソコンの電源を入れ OS(Windows7) を起動する。  2 スタートメニューからメモ帳を起動する。  3 キーボード[全角半角]キーを押す。  4 キーボードから「中村研究室!」と入力する。  5 キーボード[全角半角]キーを押す。  6 キーボードから半角で「 @nakalabo」と入力する。  7 エンターキーを2回叩いて改行する。  8 Ctrlキーを押したままF4キーを押す。 です。

宜しくお願い致します。

2012-11-10 18:50 Updated by: nishimoto
Comment

ご報告ありがとうございます。

実は手元に Windows 7 x64 のテスト環境しかなく、しかも「半角全角」キーのないキーボードを使っているためか、ご報告いただいた手順を再現できません。

Windows xp sp3 は使えるのでこれから調べてみますが、どなたか同じ手順で状況を確認していただくことは可能でしょうか?

2013-02-21 15:07 Updated by: nishimoto
Comment

本件については、他の環境やバージョンでも関連するご報告をいただいています。

また、日本語サポートを最小限にした実験スナップショット、また本家スナップショットでも再現する、というご指摘があります。

しかし、私はまだこの現象を再現できていないので、例えば本家にバグ報告を挙げることができません。

以下、私の確認した手順ですが、私の環境ではクラッシュしません。

手順:

  • Ctrl+Alt+N で NVDA を起動、ようこそ画面を閉じる。音声は JTalk にする。
  • メモ帳を起動
  • キー操作:半角全角。通知「日本語変換、ひらがな、ローマ字」
  • キー操作:y a m a スペース。通知「ワイ、や、エム、ま、やま・さんみゃくのさん」
  • キー操作:エンター。通知「やま」
  • キー操作:半角全角。通知「変換停止」
  • キー操作:y a m a 通知「ワイ、エー、エム、エー」
  • キー操作:Alt+F4 通知「メモ帳 ダイアログ 無題 への変更内容を保存しますか クエスチョン 保存する エス ボタン オルトプラスエス」
  • キー操作:エンター。通知「名前を付けて保存、ダイアログ(中略)ファイル名 アスタリスク ピリオド ティー エックス ティー 選択」
  • キー操作:a 通知「エー、選択項目削除」
  • キー操作:エンター
  • メモ帳は終了し、デスクトップの項目を読み上げる。

環境:

  • Windows 7 Home Basic 32ビット 日本語 sp1
  • USB接続のデスクトップ配列キーボード
  • 入力システムは Microsoft IME しか入っていない
  • NVDA 日本語版 2012.3.1jp インストール環境

もし上記と同じ手順のどこかでクラッシュするようでしたら、具体的にご指摘ください。

また、上記手順ではクラッシュしないが、手順を変えるとクラッシュする、ということでしたら、手順をどう変えれば再現できるかご教示ください。

2013-03-09 00:04 Updated by: nishimoto
Comment

下記の手順で現象を再現できました。

Windows 7 (32bit) で、まず、既定の入力システムを Microsoft IME ではなく Microsoft OfficeIME 2010 にする。

NVDA jpdev130307 を実行する。インストーラーを起動して「実行を継続」でよい。

メモ帳を起動する(私はタスクバーの左から2番目に入っているので Windows + 2 で起動)。

日本語入力でなにか日本語の文字を入力して確定する。

さらに何か日本語の文字を入力して変換し、確定をしない。

Alt+F4 を押す。

「無題への変更内容を保存しますか」と表示されて、Windows 全体が無反応になる。

本家スナップショット main 5932 eSpeak でもほぼ同じことが再現できました。

情報を整理して、本家にチケット登録したいと思います。

2013-03-09 00:20 Updated by: nishimoto
Comment

本家スナップショット main 5932 ポータブル版がクラッシュしたときの nvda.log (log level: debug)を下記に転記します。

ちなみに Windows 7 ではポータブル版のログは C:\Users\(ログオン名)\AppData\Local\Temp にあります。

INFO - nvda (00:09:02):
Starting NVDA
INFO - core.main (00:09:03):
Config dir: C:\Users\nishimotz\Desktop\nvda-main\userConfig
INFO - core.main (00:09:03):
NVDA version main-5932
INFO - core.main (00:09:03):
Using Windows version sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1')
INFO - core.main (00:09:03):
Using Python version 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]
INFO - core.main (00:09:03):
Using comtypes version 0.6.2
INFO - synthDrivers.espeak.SynthDriver.__init__ (00:09:05):
Using eSpeak version 1.46.02  06.Jan.12
INFO - synthDriverHandler.setSynth (00:09:05):
Loaded synthDriver espeak
INFO - core.main (00:09:05):
Using wx version 2.8.12.1 (msw-unicode)
INFO - braille.initialize (00:09:05):
Using liblouis version 2.5.2
INFO - braille.BrailleHandler.setDisplayByName (00:09:05):
Loaded braille display driver noBraille, current display has 0 cells.
INFO - brailleInput.initialize (00:09:05):
Braille input initialized
WARNING - core.main (00:09:05):
Java Access Bridge not available
INFO - core.main (00:09:05):
NVDA initialized
INFO - config.save (00:09:07):
Configuration saved
IO - speech.speak (00:09:14):
Speaking [LangChangeCommand ('en_UK'), u'nvda-main']
IO - speech.speak (00:09:14):
Speaking [LangChangeCommand ('en_UK'), u'\u9805\u76ee\u30d3\u30e5\u30fc  list']
IO - speech.speak (00:09:14):
Speaking [LangChangeCommand ('en_UK'), u'nvda.exe  27 of 55']
IO - inputCore.InputManager.executeGesture (00:09:18):
Input: kb(desktop):windows+2
IO - speech.speak (00:09:18):
Speaking [LangChangeCommand ('en_UK'), u'Taskbar']
IO - speech.speak (00:09:19):
Speaking [LangChangeCommand ('en_UK'), u'\u7121\u984c - \u30e1\u30e2\u5e33']
IO - speech.speak (00:09:19):
Speaking [LangChangeCommand ('en_UK'), u'edit  multi line']
IO - speech.speak (00:09:19):
Speaking [LangChangeCommand ('en_UK'), u'blank']
IO - inputCore.InputManager.executeGesture (00:09:21):
Input: kb(desktop):半角/全角
IO - inputCore.InputManager.executeGesture (00:09:23):
Input: kb(desktop):n
IO - speech.speak (00:09:23):
Speaking [LangChangeCommand ('en_UK'), u'\uff4e']
IO - inputCore.InputManager.executeGesture (00:09:27):
Input: kb(desktop):a
IO - speech.speak (00:09:27):
Speaking [LangChangeCommand ('en_UK'), u'\u306a']
IO - inputCore.InputManager.executeGesture (00:09:29):
Input: kb(desktop):enter
IO - speech.speak (00:09:29):
Speaking [LangChangeCommand ('en_UK'), u'\u306a']
IO - inputCore.InputManager.executeGesture (00:09:33):
Input: kb(desktop):n
IO - speech.speak (00:09:33):
Speaking [LangChangeCommand ('en_UK'), u'\uff4e']
IO - inputCore.InputManager.executeGesture (00:09:34):
Input: kb(desktop):a
IO - speech.speak (00:09:34):
Speaking [LangChangeCommand ('en_UK'), u'\u306a']
IO - inputCore.InputManager.executeGesture (00:09:37):
Input: kb(desktop):alt+f4
DEBUGWARNING - NVDAObjects.UIA.UIA._get_next (00:09:37):
Tree walker failed
Traceback (most recent call last):
  File "NVDAObjects\UIA\__init__.pyc", line 520, in _get_next
COMError: (-2147467259, '\x83G\x83\x89\x81[\x82\xf0\x93\xc1\x92\xe8\x82\xc5\x82\xab\x82\xdc\x82\xb9\x82\xf1', (None, None, None, 0, None))
DEBUGWARNING - NVDAObjects.UIA.UIA._get_firstChild (00:09:37):
Tree walker failed
Traceback (most recent call last):
  File "NVDAObjects\UIA\__init__.pyc", line 530, in _get_firstChild
COMError: (-2147467259, '\x83G\x83\x89\x81[\x82\xf0\x93\xc1\x92\xe8\x82\xc5\x82\xab\x82\xdc\x82\xb9\x82\xf1', (None, None, None, 0, None))
DEBUGWARNING - NVDAObjects.UIA.UIA._get_firstChild (00:09:37):
Tree walker failed
Traceback (most recent call last):
  File "NVDAObjects\UIA\__init__.pyc", line 530, in _get_firstChild
COMError: (-2147467259, '\x83G\x83\x89\x81[\x82\xf0\x93\xc1\x92\xe8\x82\xc5\x82\xab\x82\xdc\x82\xb9\x82\xf1', (None, None, None, 0, None))
DEBUGWARNING - NVDAObjects.UIA.UIA._get_firstChild (00:09:37):
Tree walker failed
Traceback (most recent call last):
  File "NVDAObjects\UIA\__init__.pyc", line 530, in _get_firstChild
COMError: (-2147467259, '\x83G\x83\x89\x81[\x82\xf0\x93\xc1\x92\xe8\x82\xc5\x82\xab\x82\xdc\x82\xb9\x82\xf1', (None, None, None, 0, None))
IO - speech.speak (00:09:37):
Speaking [LangChangeCommand ('en_UK'), u'\u30e1\u30e2\u5e33  dialog  \u7121\u984c \u3078\u306e\u5909\u66f4\u5185\u5bb9\u3092\u4fdd\u5b58\u3057\u307e\u3059\u304b?']

2013-03-09 11:39 Updated by: nishimoto
Comment

英語環境で再現できたので本家チケットを登録しました。

http://www.nvda-project.org/ticket/3064

2013-03-09 12:52 Updated by: nishimoto
  • Summary Updated
2013-03-14 23:40 Updated by: nishimoto
Comment

Windows 7 32bit + Microsoft Office IME 2010 と本家版 NVDA ポータブル (ハングアップの確認だけなので音声はeSpeak) で確認したところ、下記のようにずいぶん古いバージョンでもこの不具合が起きることがわかりました。

Office IME 2010 のバージョンアップについてはさかのぼって確認していませんが。。

メモ帳が「名前をつけて保存」ダイアログでハングアップするバージョン:

  • NVDA 2012.2
  • NVDA 2011.3
  • NVDA 2011.2
  • NVDA 2011.1.1
  • NVDA 2010.2
  • NVDA 2009.1

ハングアップが起きないバージョン:

  • NVDA 0.6p3.2

Windows 7 で実行できないバージョン:

  • NVDA 0.5

なお、Windows xp sp3 と Microsoft Office IME 2010 の組み合わせでは、このチケットの問題は再現されません。

Windows 7 については 32ビットでも 64ビットでも起きるようです。

また、メモ帳のファイル保存だけでなく、zip ファイルの操作(アプリケーションメニューの「すべて展開」)でも、ほぼ同じ現象が報告されています。

2013-03-15 13:02 Updated by: nishimoto
Comment

他のチケットにも書いた気がしますが、Windows 7 で Microsoft Office のライセンスを所有していれば Office IME 2010 をダウンロードできるという話。

IME 2010 が、Windows 7 上の次期バージョンOffice で使用可能になりました http://support.microsoft.com/kb/2719861

英語で書かれたダウンロードページ:

Microsoft Office IME 2010 http://www.microsoft.com/en-us/download/details.aspx?id=30390

使用している Windows が32ビットか64ビットに関わらず、使用する Microsoft Office が32ビットか64ビットかに合わせて IME 2010 の32ビット版か64ビット版かどちらかを選べと書かれています。

ちなみに 中国語(台湾)の InputMethodEditor x86 zh-tw.exe を入れて New Phonetic 2010 をデフォルトの入力にしたときも、このチケットの不具合が再現できました。

また NVDA 2013.1beta1 のポータブル版でも同様です。

2013-04-05 18:48 Updated by: nishimoto
  • Severity Update from 5 - Medium to 6
Comment

本家 2013.1 rev 6014 までマージしていますが、この問題は未解決です。

2013-04-05 19:53 Updated by: nishimoto
Comment

チケット #30482 エクスプローラーでデリートキーを押した直後にNVDAが落ちる、をこのチケットの重複と判断しました。

NVDA 本家 2013.1beta2 をインストールした Windows 7 (32bit) で、大きめのファイルをエクスプローラーのデリートキー操作で削除しようとするとNVDAがハングアップします。

2013-04-05 21:48 Updated by: nishimoto
Comment

本家がサーバーの引っ越しをしている影響か、チケットのコメントがつけられなかったので、下記のメールを nvda-dev-asia に書きました。

Thank you for fixing issue #3005.

Another serious issue for Japanese users is #3064.
Because the ticket system is something wrong, I would like to write regarding this.

In addition to the issue initially filed, pressing delete key for deleting file may crash NVDA frequently.

- Japanese Windows 7 sp1 (32bit)
- default input language: Japanese Microsoft Office IME 2010. cannot reproduce the issue with other Japanese input methods.
- NVDA 2013.1beta2 (installed)
- any speech driver, including silence

Procedure:
- put large file on Windows desktop (such as NVDA launcher file)
- start NVDA
- move focus to the file on desktop
- press Delete key
- during the confirmation (yes/no) dialog for deletion, NVDA crashes (not always, but very frequently)
- sometimes "APPCRASH" or "StackHash" is reported from Windows, but no errors or debug messages in the nvda.log.

Unfortunately, many Windows 7 users in Japan is using Microsoft Office IME 2010 as the default input system,
because Microsoft Japan is licensing it to the users of all versions of Microsoft Office.

I am very concerned about the situations with Office IME 2010 for other languages.
2013-04-11 22:12 Updated by: nishimoto
Comment

_UIAHandler で badUIAWindowClassNames に Button を追加する方法を検討中です。

lp:~nvdajp/nvdajp/jp2013.1 rev 6005

http://bzr.sourceforge.jp/view/nvdajp/nvdajp2013.1/revision/6005/source/_UIAHandler.py

2013-04-15 17:04 Updated by: nishimoto
Comment

badUIAWindowClassNames に Button を追加する方法の妥当性について mick さんとメールでやりとりをしています。

「この修正をしない場合に、ボタンを押すと NVDA やアプリがクラッシュすることがあるか」

という質問が来たので、なにか思い当たることがあればお知らせください。

2013-04-17 21:49 Updated by: nishimoto
Comment

Mick さんから質問された件について下記の回答をしました。

  • ソースファイル _UIAHandler.py のディクショナリ UIAEventIdsToNVDAEventNames から一つずつ要素を外していき、どこでクラッシュしなくなるかを調べたところ、すべてコメントアウトしてもクラッシュは解決しなかった。
  • 同じファイルの UIAControlTypesToNVDARoles ディクショナリから UIA_ButtonControlTypeId:controlTypes.ROLE_BUTTON をコメントアウトする(下記のパッチ参照)と、クラッシュはしなくなった。これは badUIAWindowClassNames に "Button" を追加することと同じ効果がある?
diff --git a/source/_UIAHandler.py b/source/_UIAHandler.py
index 798a936..e64473b 100644
--- a/source/_UIAHandler.py
+++ b/source/_UIAHandler.py
@@ -43,7 +43,7 @@ badUIAWindowClassNames=[
 ]

 UIAControlTypesToNVDARoles={
-       UIA_ButtonControlTypeId:controlTypes.ROLE_BUTTON,
+#      UIA_ButtonControlTypeId:controlTypes.ROLE_BUTTON,
        UIA_CalendarControlTypeId:controlTypes.ROLE_CALENDAR,
        UIA_CheckBoxControlTypeId:controlTypes.ROLE_CHECKBOX,
        UIA_ComboBoxControlTypeId:controlTypes.ROLE_COMBOBOX,
2013-04-21 11:10 Updated by: nishimoto
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2013-04-21 11:10
  • Milestone Update from (None) to 2013.1jp (closed)
Comment

4月11日のコメント(lp:~nvdajp/nvdajp/jp2013.1 rev 6005)で本チケットの問題は解決したものと思います。 開発スナップショット jpdev130415 に反映されています。

この修正が本家にマージされるかどうか不明ですが、日本語版に関するチケットとしてはクローズします。

2013-07-19 15:38 Updated by: nishimoto
Comment

この問題は NVDA 日本語版 2013.1jp で修正されていて、NVDA 本家版では 2013.1.1 まで修正されていませんでしたが、Button を badUIAWindowClassNames に追加する nvdajp の修正案が本家で採用される予定です。

現在、本家の t3064 ブランチで行われたこの変更が next スナップショットにマージされ、問題がなければ master に格上げされるとのことです。

http://community.nvda-project.org/ticket/3064

http://community.nvda-project.org/changeset/996496f31153c6c054ea42d7b008574d28624827

2013-07-29 20:09 Updated by: nishimoto
Comment

すでに NVDA 日本語版で行われている修正と同じですが、改めて確認をしてほしいとのことだったので、本家スナップショット NVDA next-9419,b27dcf2 で Office IME 2010 と Windows 7 32ビットの動作確認をしました。問題がないと報告しました。

2014-07-26 04:19 Updated by: None
Comment

Reply To nakalabo

メモ帳を起動してテキストを何文字か入力し、保存せずにメモ帳を閉じようとするとメモ帳ごと落ち、音声も止まってしまいます。 再現手順は  1 メモ帳を起動。  2 メモ帳に「中村研究室! @nakalabo」とキーボードで入力。  3 Ctrlキーを押したままF4キーを押す。 メモ帳が停止してしまい、完全に音声まで出なくなります。 NVDAのバージョンは jpdev121109、OSは Windows7 32bit です。 類似する環境ではどうでしょうか?

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login