Używam SendKeys w programie automatyzacji do pracy. Posuwałam się naprzód i próbuję teraz naprawić wszystkie błędy, które stworzyłem :-)Programowo wyłącz blokadę caps
Jednym z nich jest to, że kiedy użyłem SendKeys.Send ("Test"), jeśli CapsLock jest włączony, wytworzy "test" w przeciwieństwie do "testu".
Użyłem następujący kod do próbują wykryć stan CapsLock i włączyć ją w razie potrzeby:
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.
}
a następnie natychmiast użyć SendKeys wysłać tekst:
SendKeys.SendWait("This Is An Over Capitalized Test String");
Która STILL wychodzi jako: "TO JEST NA KAPITALIZOWANYM TESTIE TESTOWYM".
Czy istnieje sposób na obejście tego problemu?
Udzielono odpowiedzi! Po prostu do wyjaśnienia dla nikogo innego, problem został rozwiązany za pomocą
SendKeys.SendWait("{CAPSLOCK}" + text);
raz pierwszy próbował użyć:
SendKeys.SendWait("{CAPSLOCK}");
SendKeys.SendWait("This Is An Over Capitalized Test String");
które nie działają w ogóle.
Co zrobić, jeśli wykonasz polecenie "SendKeys.Send" {CAPSLOCK} Test "'? – V4Vendetta