мне нужно эмулировать некоторые ключи, вот код:C# KEYEVENTF_KEYUP не работает в конкретном приложении
[DllImport("user32.dll")]
private static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
private const int KEYEVENTF_EXTENDEDKEY = 1;
private const int KEYEVENTF_KEYUP = 2;
public static void KeyDown(Keys vKey)
{
keybd_event((byte)vKey, 0, KEYEVENTF_EXTENDEDKEY, 0);
}
public static void KeyUp(Keys vKey)
{
keybd_event((byte)vKey, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
KeyboardSend.KeyDown(Keys.Z);
KeyboardSend.KeyUp(Keys.Z);
Но в одном конкретном приложении «KeyUp» метод не работает и находится в депрессии, пока я не нажать клавишу на клавиатуре.
Что я делаю неправильно?
Рассмотрите возможность установки небольшой ** задержки ** между вызовами KeyDown() и KeyUp(): 'System.Threading.Thread.Sleep (100);' –
Я уже пробовал это :( – CSharpRU
Вы пробовали 'SendKeys. SendWait ("z"); '? ... почему вы используете' KEYEVENTF_EXTENDEDKEY' здесь? –