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

Setting Windows XP Embedded locale programmatically in C#

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

这最好是一个组合框 select 或允许用户从可用区域格式列表 similar/identical 到 intl.cpl 中选择 select。这需要在无权访问 intl.cpl 的非管理员帐户上 运行(我将以管理方式提升应用程序)。

您需要使用 API。检查这个:

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

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

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

第二个参数指定您要设置的语言环境类型(日期格式、月份名称、日期名称、货币格式等)

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

您可以查看 MSDN page 了解更多信息。

请注意,正如您所说,这会修改整个系统的注册表,因此请务必小心并确定您为什么要这样做。