在C#中以编程方式设置Windows XP Embedded语言环境

时间:2015-01-15 22:22:18

标签: c# windows windows-xp locale

有没有办法在Windows XP Embedded中以编程方式从C#Windows窗体应用程序设置系统区域设置(可能使用短代码,例如en-US)?

优选地,这将是组合框选择器,其允许用户从与intl.cpl类似/相同的可用区域格式的列表中进行选择。这需要在非管理员帐户上运行,该帐户无权访问intl.cpl(我将在管理上提升应用程序)。

1 个答案:

答案 0 :(得分:1)

您需要使用API​​。检查一下:

[DllImport("kernel32.dll")]
static extern bool SetLocaleInfo(uint Locale, uint LCType, string lpLCData);

使用kernel32.dll中的此功能,您将能够设置系统的区域设置。

第一个参数指定函数在解释lpLCData的数据时将使用的语言环境。

第二个参数指定您设置的区域设置类型(日期格式,月份名称,日期名称,货币格式等)

第三个参数指定您要设置的格式。它必须与您在第二个参数上指定的类型兼容。

您可以查看MSDN page了解详情。

请注意,正如yoy所说,这会修改整个系统的注册表,所以要非常小心并且非常确定你为什么要这样做。