簡體   English   中英

與Win8 C#的InputLanguage兼容性

[英]InputLanguage compatibility with win8 c#

我需要我的應用輸入語言始終是俄語。 以下代碼在Win XP上可以正常運行:

public void SetNewLanguage()
        {
            InputLanguage myCurrentLanguage = InputLanguage.FromCulture(Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU"));
            InputLanguage.CurrentInputLanguage = myCurrentLanguage;
        }

例如,無論默認語言是什么,它都會將輸入語言設置為俄語(假設已安裝ru-RU文化)。

問題在於,在Win 8.1(也安裝了ru-RU)中調用相同的功能並不適用,因此輸入語言保持為英語。

有什么想法如何使以上代碼適用於XP和Win 8嗎?

我不是真正的程序員,但是我一直在努力解決類似的問題,我的應用選擇的Windows西班牙語鍵盤布局在Windows 7中很好,但在Windows 8.1 VM中卻沒有,我最近將VS移至我似乎已經破解了。

看來這是因為Windows 8.1默認沒有啟用每個應用程序的語言切換,因為在我按照https://superuser.com/questions/466180/set-windows-8-to-per-application上的說明進行操作之后-input-language-mode原始代碼有效。

但是,這是我在發現之前發現的內容:

我最初在program.cs中包含代碼,因此如果無法使用西班牙鍵盤布局,則該應用程序將無法啟動。 如果是,它將進行設置並完成啟動。 雖然它可以在Windows 7上運行(並僅為一個應用程序設置鍵盤布局),但似乎Windows 8.1直到在屏幕上可見該窗體時才開始運行。

為了使其能夠在Windows 8中正常工作,我必須在主窗體上粘貼Load事件並在其中設置鍵盤布局:

private void Form1_Load(object sender, EventArgs e

我要做的是嘗試獲取系統的鍵盤布局。 這將幫助您確定語言設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM