“Не отпускаются” клавиши

156
22 ноября 2018, 20:40
private bool nonKeysEntered = false;
public void MyKeyUp(object sender, KeyEventArgs e)
{
    nonKeysEntered = false;
    if (e.KeyCode == Keys.Space)
    {
        KeyboardSend.KeyDown(Keys.ControlKey);
        KeyboardSend.KeyDown(Keys.S);
        nonKeysEntered = true;
    }
}
public void MyKeyPress(object sender, KeyPressEventArgs e)
{
    if (nonKeysEntered) e.Handled = true;
}
static class KeyboardSend
{
    [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);
    }
}

Открываю блокнот, нажимаю клавишу пробел, срабатывает комбинация ctrl+s и после этого, такое ощущение, будто эти клавиши нажаты остаются навсегда (скролю в браузере - происходит увеличение/уменьшение страницы и т.д)

Помогите, пожалуйста, понять, в чем ошибка? В данный момент остановился на коде выше.

READ ALSO
Утечка памяти при работе с графикой

Утечка памяти при работе с графикой

В общем, есть окно, где есть комбобокс с десятками ссылок на картинку весом ~2 мб и разрешением 5037x3657

163
С# Как считать string из hex

С# Как считать string из hex

У меня есть файл в котором есть начало считывания строкового значения C1 00 00 00 (193 офсет) и кол-во строк 0F 00 00 00 (15), строки разделяются 0x00 + 8 левых...

214
Выдвигающиеся панели

Выдвигающиеся панели

Как на WPF можно реализовать выдвигающиеся панели

184
Как конвертировать, bitmap в ImageSource, пробую не получается

Как конвертировать, bitmap в ImageSource, пробую не получается

Для вывода картинки в WPF я конвертирую иконку от файла в формате bitmap в формат, который будет отображаться в контролеВот код

163