以编程方式更改WinXP语言

问题描述:

如何以编程方式使用.Net 2.0(或pInvoke)更改WinXP中使用的语言。用户无权访问我正在处理的应用程序中的任务栏,因此输入法需要反映应用程序的选定语言。我需要能够在不重新启动应用程序的情况下,将语言从左到右交换到从右到左再返回。虽然可以重新创建控件。以编程方式更改WinXP语言

语言应安装在系统中,请检查下面的代码它改变语言为阿拉伯语在C#:

public void ToArabic() 
    { 
     string CName= ""; 
     foreach(InputLanguage lang in InputLanguage.InstalledInputLanguages) 
     { 
      CName = lang.Culture.EnglishName.ToString(); 

      if(CName.StartsWith("Arabic")) 
      { 
       InputLanguage.CurrentInputLanguage = lang; 
      } 
     } 

    } 

返回它放回英语

public void ToEnglish() 
     { 
      string CName= ""; 
      foreach(InputLanguage lang in InputLanguage.InstalledInputLanguages) 
      { 
       CName = lang.Culture.EnglishName.ToString(); 

       if(CName.StartsWith("English")) 
       { 
        InputLanguage.CurrentInputLanguage = lang; 
       } 
      } 

     } 

可以使用这个代码在你的应用程序中改变输入语言。 用户也可以按alt + shift在系统中定义的语言之间进行切换。