是否可以在运行时设置Windows程序的语言或区域设置?

时间:2011-10-14 15:59:37

标签: windows runtime locale

我们有一些现有的软件(C ++ Windows应用程序),它们的资源已经被各种客户翻译成多种语言。应用程序从Windows语言环境中选择语言环境,并以适当的语言运行。

根据最近的订单,我们将资源翻译成德语,但我们刚刚发现客户正在用英语安装Windows,但希望我们的软件仍以德语运行。显然,PC上运行的其他软件还没有全球化,只有德语版。

在Windows中是否有任何方法可以覆盖语言环境,以便软件认为它在德语版的Windows上运行?我们现在没有时间对软件进行更改以覆盖区域设置,并且不愿意为这个客户分配应用程序。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

我不知道任何直接的方式不涉及更改您的程序,但我可以提供解决方法:

在运行应用程序的计算机上,创建另一个用户,并将该用户的语言环境设置为德语。然后,让您的程序使用该用户的凭据运行(使用runas或psexec)。然后该程序将使用德语语言环境运行,而用户将继续使用英语环境。但是,如果用户试图保存或打开文件,这将会很烦人 - 桌面和文档文件夹将是德语用户而不是英语用户。

答案 1 :(得分:0)

是的,您可以使用WinMain中的win32调用SetThreadLocale或应用程序的入口点。任何子线程都将继承父语言环境。详情如下:

http://msdn.microsoft.com/en-us/library/windows/desktop/dd374051%28v=vs.85%29.aspx

相关问题