2

製品の実行中に Windows サーバーからログオフできないという、奇妙で非常にまれな問題があります。システムはマルチアプリケーションで、すべて MFC/C++ です。アプリは管理サービスから実行されるため、ログオフに耐えます。世界中の多くの施設で、ロバの何年にもわたって問題なく動作しています。

すべてのウィンドウを列挙し、それらに WM_QUERYENDSESSION メッセージを送信し、FALSE が返されたら停止するテスト アプリケーションを作成しました。このテストは、ドイツで問題が再現されるこれらのまれなケースの 1 つで実行されています。犯人は常に目に見えない IME (Input Method Editor) ウィンドウのように見えますが、IME ウィンドウは常に MFC アプリケーションの 1 つに属しています。ImmDisableIME (-1) を呼び出すことで、個々のアプリケーションの問題を解決できると思います。しかし、私が探しているのは...

(a) 誰かがこれを回避するための構成方法を持っている場合、すべての国のすべてのアプリケーションのすべてのバージョンを変更する必要はありません。これは大きな仕事です。

(b) そもそもなぜこれが起こるべきなのか。私たちが作成したのではない IME ウィンドウが、ユーザーがログオフできないと判断する必要があるのはなぜですか?

(c) 他の誰かがこれを見たことがありますか? ミザリーは仲間が大好きですよね。

前述のとおり、現在、ドイツの 1 台のマシンで発生しています。もちろん、どのバージョンの Windows でも、ここで再現することはできません。ばぁ。

4

2 に答える 2

2

Microsoft は、さまざまなバージョンの IME でこれらの問題のいくつかに遭遇したようです。比較的古いアップデートを見つけました。顧客が実行している OS は何ですか? Office のバージョンはインストールされていますか? あなたのケースで IME ウィンドウを作成するモジュールのファイル名とバージョンを特定することは可能ですか?

Office 2003 の IME に関連する更新を次に示します。

Microsoft 既知のバグ 870774

Windows をシャットダウンすると、メッセージ ボックスが閉じるまでに 30 秒かかります

開いているすべてのプログラムを最初に閉じずにインストールされた高度なテキスト サービスをサポートするために使用される Office 2003 フレームワークを持つ日本語 Windows 2000 ベースのコンピューターをシャットダウンしようとすると、開いているプログラムごとにメッセージ ボックスが表示されます。[終了] をクリックすると、Windows がシャットダウンする前に各メッセージ ボックスを閉じるのに約 30 秒かかります。

  ファイル名 バージョン
   -----------------------
   Msctf.dll 5.1.2409.39
   Msimtf.dll 5.1.2409.39
   Input.cpl 5.1.2409.39
   Sptip.dll 5.1.2409.39

以下は、Windows XP IME に関連する更新です。

Microsoft 既知のバグ 811147

Windows Messenger がシャットダウン中にハングし、[プログラムの終了] ダイアログ ボックスが表示される

   日時 バージョン サイズ ファイル名
   -------------------------------------------------- --
   2003 年 1 月 17 日 15:36 8.1.4008.0 57,400 Cplexe.exe
   2003 年 1 月 17 日 15:34 8.1.4008.0 335,917 Imjp81.ime
   2003 年 2 月 6 日 13:56 8.1.4008.0 827,438 Imjp81k.dll
   2003 年 2 月 6 日 13:56 8.1.4008.0 360,494 Imjpcic.dll
   2003 年 2 月 6 日 13:56 8.1.4008.0 716,857 Imjpcus.dll
   2003 年 2 月 6 日 13:56 8.1.4008.0 81,977 Imjpdct.dll
   2003 年 1 月 22 日 09:52 8.1.4008.0 307,258 Imjpdct.exe
   2003 年 1 月 17 日 15:36 8.1.4008.0 155,706 Imjpdsvr.exe
   2003 年 1 月 17 日 15:36 196,666 Imjpinst.exe
   2003 年 1 月 17 日 15:36 8.1.4008.0 208,953 Imjpmig.exe
   2003 年 1 月 17 日 15:36 8.1.4008.0 233,528 Imjprw.exe
   2003 年 1 月 17 日 15:36 8.1.4008.0 262,201 Imjputy.exe
   2003 年 2 月 6 日 13:56 8.1.4008.0 274,490 Imjputyc.dll
   2002 年 11 月 14 日 10:01 5.3.10.0 4,608 Spmsg.dll
于 2009-10-15T00:29:26.413 に答える
0

別の提案:

どのウィンドウに障害があるかがわかっている場合は、そのウィンドウが毎回同じである場合は、ウィンドウをサブクラス化し、WM_QUERYSESSIONEND メッセージを直接処理してみてください。これにより、IME ウィンドウが方程式から取り除かれ、かなり保守可能なソリューションになるはずです。

于 2009-09-30T16:39:19.670 に答える