簡體   English   中英

在本地化系統中打開鍵盤屬性對話框

[英]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方法不會退出。 可能是因為對話框窗口不再具有“鍵盤屬性”名稱。 你們有什么建議? 我應該如何處理,以便無論系統使用哪種語言,都可以打開鍵盤屬性對話框。

MSDN中所述 ,您應該使用以下命令打開“控制面板”的“ 鍵盤屬性”窗口:

control.exe keyboard

您可以在此處找到其他命令,例如鼠標字體設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM