2017-09-18 29 views
1

对话框我有下面的代码将打开当过用户点击一个按钮,键盘属性对话框:打开键盘性能的本地化系统

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方法不会退出。可能是因为对话窗口没有名称“键盘属性”了。你有什么建议?我应该如何处理,以便能够打开键盘属性对话框,无论系统的语言如何。

+1

为什么要手动搜索窗口?您只需调用'control.exe键盘'键盘属性窗口即可自动显示为前景窗口。 – dymanoid

+0

@dymanoid,如果我评论最后三行,我可以在英语系统中显示属性窗口,但是同样的东西不适用于中文,窗口不显示,您认为可能是什么问题。 – Sameed

+1

刚刚在日文Win 7上测试过,'control.exe键盘'工作得很好。使用它而不是'main.cpl'。 – dymanoid

回答

1

如上所述in MSDN,您应该使用这个命令打开控制面板中的键盘属性窗口:

control.exe keyboard 

你可以找到另一个命令出现,如鼠标字体设置。