2011-08-04 131 views
0

你好,全部。 Windows系统语言环境(或者说系统代码页,1252,936,950等)必须是系统范围的吗?您知道,在Windows 2000〜Windows 7中,更改控制面板中的系统代码页需要重新启动才能生效。必须将Windows系统区域设置为系统范围?

我想知道我是否可以进行每个登录会话区域设置甚至每个进程的区域设置?这将简化以不同语言环境运行的调试程序。

顺便说一句:我发现GetCPInfo()Win32 API但没有相应的SetCPInfo,感叹。

回答

1

是的,系统区域设置是整个系统,但用户和进程/线程可以更改自己的区域设置。 本地线程可以使用SetThreadLocale()进行设置。 其他任何东西都不在您的程序的职权范围内进行更改。

+1

谢谢。我仍然很好奇微软为什么做出这样的决定,不允许在过程基础上或基于登录会话的基础上更改系统区域设置。你能做更多的解释吗? –

+0

因为这是用户设置,所以不能让应用程序更改。如果你想改变它,它就像上面提到的那样是线程特定的。 – Deanna