我使用的SendKeys在工作的自動化程序。我一直在努力,現在正在努力消除我創建的所有錯誤:-)編程方式禁用大寫鎖定
其中之一是,當我使用SendKeys.Send(「Test」)時,如果CapsLock它將產生「測試」而不是「測試」。
我用下面的代碼來嘗試檢測大寫鎖定狀態,並在必要時將其切換:
bool tmp = Control.IsKeyLocked(Keys.CapsLock);
if (tmp)
{
keybd_event(0x14, 0x45, KEYEVENTF_EXTENTEDKEY, (UIntPtr)0);
keybd_event(0x14, 0x45, KEYEVENTF_EXTENTEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
//Application.DoEvents(); <-Testing.
}
然後立即使用的SendKeys發送一些文字:
SendKeys.SendWait("This Is An Over Capitalized Test String");
哪仍然出現:「這是一個超過預定的測試sTRING」。
有什麼辦法來解決這個問題呢?
回答!只是爲了澄清爲別人,這個問題是通過使用
SendKeys.SendWait("{CAPSLOCK}" + text);
解決我第一次嘗試使用:
SendKeys.SendWait("{CAPSLOCK}");
SendKeys.SendWait("This Is An Over Capitalized Test String");
哪個沒有在所有的工作。
如果您執行'SendKeys.Send「{CAPSLOCK}測試」'? – V4Vendetta