[英]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.