[英]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
方法不會退出。 可能是因為對話框窗口不再具有“鍵盤屬性”名稱。 你們有什么建議? 我應該如何處理,以便無論系統使用哪種語言,都可以打開鍵盤屬性對話框。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.