2009-09-30 67 views
2

我們有一個奇怪且非常罕見的問題,那就是當我們的產品運行時,人們無法註銷Windows服務器。該系統是多應用程序,所有MFC/C++。這些應用程序是從管理服務運行的,因此它們可以在註銷後生存它在世界各地的驢子年度運行良好。輸入法編輯器窗口爲WM_QUERYENDSESSION返回FALSE - 爲什麼?

我寫了一個測試應用程序以枚舉所有窗口,給他們發送WM_QUERYENDSESSION消息,當它返回FALSE停止。這個測試是針對德國問題重演的罕見情況之一進行的。它似乎總是一個看不見的IME(輸入法編輯器)窗口,這是有罪的派對,但IME窗口總是屬於我們的MFC應用程序之一。我想我可以通過調用ImmDisableIME(-1)來解決單個應用程序的問題。但是我正在尋找的是...

(一)如果有人有一個配置方法來解決這個問題,所以我們不必修改所有國家的所有應用程序的所有版本 - 大工作。

(b)爲什麼這應該發生在第一位。爲什麼我們沒有創建的IME窗口決定用戶不能註銷?

(c)以前有沒有人見過這個?你知道,苦難愛公司。

如上所述,目前它在德國的一臺機器上發生。當然,在任何版本的Windows上,我們都無法在這裏複製。呸。

+0

聽起來像MFC的隱藏的IME窗口沒有將WM_QUERYENDSESSION消息傳遞給DefWindowProc()。 – 2009-09-30 17:59:51

回答

2

似乎微軟已經遇到了與IME的各種版本有關的一些問題。我發現了一些相對較舊的更新。您的客戶運行什麼操作系統?他們是否安裝了Office版本?是否可以確定在你的情況下創建IME窗口的模塊的文件名和版本?

這裏是從Office 2003相關的IME更新:

Microsoft Known Bug 870774

消息框需要30秒關閉,當你關閉Windows

當您嘗試關閉基於日語Windows 2000的計算機具有Office 2003框架,用於支持先安裝的高級文本服務,而不必首先關閉所有打開的程序 ,則會收到我每個打開的程序都有一個ssage框。當您單擊「結束」時,Windows可能會關閉之前大約需要30秒才能關閉每個消息框。

 
    File name Version 
    ----------------------- 
    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 Known Bug 811147

的Windows Messenger掛起在關機和終止程序對話框出現

 
    Date   Time Version  Size  File name 
    ---------------------------------------------------- 
    17-Jan-2003 15:36 8.1.4008.0 57,400 Cplexe.exe 
    17-Jan-2003 15:34 8.1.4008.0 335,917 Imjp81.ime 
    06-Feb-2003 13:56 8.1.4008.0 827,438 Imjp81k.dll 
    06-Feb-2003 13:56 8.1.4008.0 360,494 Imjpcic.dll 
    06-Feb-2003 13:56 8.1.4008.0 716,857 Imjpcus.dll 
    06-Feb-2003 13:56 8.1.4008.0 81,977 Imjpdct.dll 
    22-Jan-2003 09:52 8.1.4008.0 307,258 Imjpdct.exe 
    17-Jan-2003 15:36 8.1.4008.0 155,706 Imjpdsvr.exe 
    17-Jan-2003 15:36    196,666 Imjpinst.exe 
    17-Jan-2003 15:36 8.1.4008.0 208,953 Imjpmig.exe 
    17-Jan-2003 15:36 8.1.4008.0 233,528 Imjprw.exe 
    17-Jan-2003 15:36 8.1.4008.0 262,201 Imjputy.exe 
    06-Feb-2003 13:56 8.1.4008.0 274,490 Imjputyc.dll 
    14-Nov-2002 10:01 5.3.10.0  4,608 Spmsg.dll 
+0

他們不太可能在服務器上安裝Office,但值得檢查。我還會讓他們關閉高級文本服務,看看這是否有所作爲。 – 2009-10-15 17:09:50

+0

是的,我收到德國的通知,關閉高級文本服務解決了問題,所以我會接受這個問題。 – 2009-10-31 22:10:40

+0

老鼠,SO不會讓我高興(太舊),但我仍然接受。 – 2009-10-31 22:11:23

0

另一個建議:

如果你知道哪個窗口是有過錯的,它是同一個,每次你可以試試子類的窗口,直接處理WM_QUERYSESSIONEND消息。這將IME窗口排除在等式之外,應該是一個相當可維護的解決方案。

+0

我希望有一種方法來配置IME或Windows本身來防止系統範圍的問題,我真的不想爲大約30個服務器端MFC應用程序修改代碼,沒有一個很好的理由:-)。我會考慮它,但... – 2009-10-02 18:46:38

+0

@鮑勃,可能有。我對IME有點不熟悉。 – JaredPar 2009-10-02 18:48:26