有没有办法在Windows XP Embedded中以编程方式从C#Windows窗体应用程序设置系统区域设置(可能使用短代码,例如en-US)?
优选地,这将是组合框选择器,其允许用户从与intl.cpl类似/相同的可用区域格式的列表中进行选择。这需要在非管理员帐户上运行,该帐户无权访问intl.cpl(我将在管理上提升应用程序)。
答案 0 :(得分:1)
您需要使用API。检查一下:
[DllImport("kernel32.dll")]
static extern bool SetLocaleInfo(uint Locale, uint LCType, string lpLCData);
使用kernel32.dll
中的此功能,您将能够设置系统的区域设置。
第一个参数指定函数在解释lpLCData
的数据时将使用的语言环境。
第二个参数指定您设置的区域设置类型(日期格式,月份名称,日期名称,货币格式等)
第三个参数指定您要设置的格式。它必须与您在第二个参数上指定的类型兼容。
您可以查看MSDN page了解详情。
请注意,正如yoy所说,这会修改整个系统的注册表,所以要非常小心并且非常确定你为什么要这样做。