在本地化系统中打开键盘属性对话框

Open keyboard properties dialog in a localized system

我有以下代码,当用户点击按钮时打开键盘属性对话框:

Process proc = new Process();
proc.EnableRaisingEvents = true;
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.FileName = "main.cpl";
proc.StartInfo.Arguments = "keyboard";
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
proc.Start();
proc.WaitForExit();
int keyBoardWindow;
while ((keyBoardWindow = FindWindow(null, "Keyboard Properties")) == 0) ;
int isSet = SetForegroundWindow(keyBoardWindow);

当您系统的默认语言是英语时,此代码可以正常工作,如果是中文等其他语言,FindWindow 方法不会退出。可能是因为对话框 window 不再具有名称 "Keyboard Properties"。你们有什么建议?我应该如何处理这个问题,以便无论系统语言是什么,我都可以打开键盘属性对话框。

in MSDN所述,您应该使用以下命令打开控制面板的键盘属性window:

control.exe keyboard

您可以在那里找到其他命令,例如 鼠标字体 设置。