2010-09-15 26 views
3

我正在屏幕鍵盤應用程序中編寫代碼。 鍵盤在單獨的進程中運行,並且應用程序窗口是最頂層的,沒有獲得焦點。當我在應用程序之間切換時,語言會改變。如何在工具欄上獲取當前選定的語言以及如何在更改時通知我?當語言發生變化時獲取當前的Windows系統輸入語言和通知

.net的InputLanguageManager和InputLanguage類只能對使用它們的應用程序執行此操作。

我發現WM_INPUTLANGCHANGE消息是在語言改變時發送的。但是這條消息只發送給重點窗口。

Windows 7中的osk.exe應用程序可以執行此操作。 請給我一些建議,我如何達到這一行爲。

回答

0

圍繞谷歌的快速旅行給了this result。這似乎表明系統掛鉤是解決這個問題的正確方法。

0

全局鉤子工作正常,但只有通過按熱鍵或在工具欄上更改輸入語言時纔會發送WM_INPUTLANGCHANGE和WM_INPUTLANGCHANGEREQUEST。但是,當您在不同輸入語言的應用程序之間切換時,語言會在工具欄上更改,但不會發送窗口消息。