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
方法不會退出。可能是因爲對話窗口沒有名稱「鍵盤屬性」了。你有什麼建議?我應該如何處理,以便能夠打開鍵盤屬性對話框,無論系統的語言如何。
爲什麼要手動搜索窗口?您只需調用'control.exe鍵盤'鍵盤屬性窗口即可自動顯示爲前景窗口。 – dymanoid
@dymanoid,如果我評論最後三行,我可以在英語系統中顯示屬性窗口,但是同樣的東西不適用於中文,窗口不顯示,您認爲可能是什麼問題。 – Sameed
剛剛在日文Win 7上測試過,'control.exe鍵盤'工作得很好。使用它而不是'main.cpl'。 – dymanoid