Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要.NET解决方案来检测“是否”;“东亚语言”;安装在Windows XP中_C#_Wpf_Localization_Windows Xp - Fatal编程技术网

C# 需要.NET解决方案来检测“是否”;“东亚语言”;安装在Windows XP中

C# 需要.NET解决方案来检测“是否”;“东亚语言”;安装在Windows XP中,c#,wpf,localization,windows-xp,C#,Wpf,Localization,Windows Xp,环境-C#,.NET4.0,WPF,VS2010 我有一个简单的Windows应用程序,它支持多种文化/语言。当用户选择日语、韩语、中文(简体)或中文(繁体)时,Windows XP将在图示符的位置显示有趣的“方形”或“块”字符。此问题在Windows Vista 7或8上不会出现 作为一种解决方案,建议我转到“控制面板|区域和语言选项”,选择“语言”选项卡,然后选中“为东亚语言安装文件”框 这确实解决了我的机器的问题。现在我了解到,在日本选择“日语”的用户很可能已经安装了必要的资源,而且他们很

环境-C#,.NET4.0,WPF,VS2010

我有一个简单的Windows应用程序,它支持多种文化/语言。当用户选择日语、韩语、中文(简体)或中文(繁体)时,Windows XP将在图示符的位置显示有趣的“方形”或“块”字符。此问题在Windows Vista 7或8上不会出现

作为一种解决方案,建议我转到“控制面板|区域和语言选项”,选择“语言”选项卡,然后选中“为东亚语言安装文件”框

这确实解决了我的机器的问题。现在我了解到,在日本选择“日语”的用户很可能已经安装了必要的资源,而且他们很可能不会遇到这个问题

但是…我需要能够检测运行我的应用程序的任何Windows XP机器上是否安装了东亚语言。在这种情况下,我将能够显示一个消息框,通知他们安装语言…或者我可能决定隐藏日语、韩语、中文(简体)和中文(传统)文化/语言选项

那么…如何检测Windows XP是否安装了必要的东亚语言文件?我更喜欢.NET解决方案,但如有必要,我愿意调用API


JP

您可以这样迭代:

        foreach (System.Windows.Forms.InputLanguage p in System.Windows.Forms.InputLanguage.InstalledInputLanguages)
            Console.WriteLine(p.Culture.EnglishName);

它将显示您正在查找的内容。

您可以这样迭代:

        foreach (System.Windows.Forms.InputLanguage p in System.Windows.Forms.InputLanguage.InstalledInputLanguages)
            Console.WriteLine(p.Culture.EnglishName);

它将显示您正在寻找的内容。

我没有尝试过这个,但我倾向于尝试一下——用东亚语言画一些东西,然后检查结果。你有箱子吗


编辑:显然有些人没有意识到我的意思是绘制文本,然后让代码检查结果。我不是说做眼球测试

我没有试过这个,但我倾向于尝试一下——用东亚语言画一些东西,然后检查结果。你有箱子吗


编辑:显然有些人没有意识到我的意思是绘制文本,然后让代码检查结果。我不是说做眼球测试

您应该使用
GetCultures
函数调用检查
CultureInfo
,而不是检查
InputLanguage

如文件所述,如果将
InstalledWin32Cultures
用作参数,则此函数应返回您想要的结果


您应该使用
GetCultures
函数调用检查
CultureInfo
,而不是检查
InputLanguage

如文件所述,如果将
InstalledWin32Cultures
用作参数,则此函数应返回您想要的结果


这将告诉您是否支持输入,即使不支持输入,也可能支持显示。这个Windows XP实例安装了字体,但没有相应的输入方法——我想能够用中文显示电子邮件,我妻子无论如何都会用电话回答,所以不需要输入编辑器。不。不要使用Windows.Forms,因为它在.NET 4中已被完全删除。5@ColeJohnson是谁说的?所有WinForms Stuff在.NET4.5中仍然可用。如果微软做出这样的决定,那将是愚蠢的。@LexLi不,不是。安装win 8、vs11和.net4.5后,您不能再引用System.Windows.Forms。因为我确实在使用Windows 8+vs11,我确认我可以自由使用System.Windows.Forms.dll。您使用的项目类型是什么?您在旧版VS中创建的任何项目(WinForms)都可以在其中打开。这将告诉您是否支持输入,即使不支持输入,也可能支持显示。这个Windows XP实例安装了字体,但没有相应的输入方法——我想能够用中文显示电子邮件,我妻子无论如何都会用电话回答,所以不需要输入编辑器。不。不要使用Windows.Forms,因为它在.NET 4中已被完全删除。5@ColeJohnson是谁说的?所有WinForms Stuff在.NET4.5中仍然可用。如果微软做出这样的决定,那将是愚蠢的。@LexLi不,不是。安装win 8、vs11和.net4.5后,您不能再引用System.Windows.Forms。因为我确实在使用Windows 8+vs11,我确认我可以自由使用System.Windows.Forms.dll。您使用的项目类型是什么?您在旧版VS中创建的任何项目(WinForms)都可以在其中打开。他希望以编程方式确定是否安装了这些项目。他希望以编程方式确定是否安装了这些项目。