C# 启动进程时应用所需的显示语言

C# 启动进程时应用所需的显示语言,c#,wpf,windows,C#,Wpf,Windows,虽然我的用户的显示语言是英语,但我想用另一种安装的语言显示windows的某些部分。我正在使用Process.Start(“control”,“desk.cpl”)打开显示设置,但我希望它是波斯语的。(用户的计算机中安装了波斯语)这是如何实现的? 我尝试设置线程的区域性信息,但没有成功…我相信您无法将自己的语言设置为桌面上的特定窗口 此外,您甚至不能将语言设置为任何正在启动的系统进程。这是因为在控制面板中更改UI语言后,有必要重新登录用户帐户 因此,您只能使用另一种语言所有进程和窗口,并且只能在

虽然我的用户的显示语言是英语,但我想用另一种安装的语言显示windows的某些部分。我正在使用
Process.Start(“control”,“desk.cpl”)
打开显示设置,但我希望它是波斯语的。(用户的计算机中安装了波斯语)这是如何实现的?

我尝试设置线程的区域性信息,但没有成功…

我相信您无法将自己的语言设置为桌面上的特定窗口

此外,您甚至不能将语言设置为任何正在启动的系统进程。这是因为在控制面板中更改UI语言后,有必要重新登录用户帐户

因此,您只能使用另一种语言所有进程和窗口,并且只能在重新登录后使用,因此您的目标无法实现,除非您在WPF应用程序中编写自己的窗口

在这种情况下: 您需要在应用程序中实现本地化逻辑

如果您使用的是WPF,那么您可能会阅读或删除它


简而言之,您必须在参考资料中定义一个表,该表将包含其行中的所有短语及其列中的翻译,其中包含本地化适配器以及一些ViewModel魔术(the)将使您的用户界面易于切换和使用多种语言。

因此,我需要实现我自己已经在Windows中实现的所有功能?是的,您确实需要。还有另一种方法,但你不会喜欢的。。。就是这样:您大量使用windows API来查找显示设置窗体上的每个控件,然后深入了解windows资源,找到您需要的MUI本地化(如果它存在且未加密,并且您有访问权和权限),然后使用您不知道的指定密钥搜索它,然后在表单上切换文本。同样,使用Windows API。