Отправка нажатий клавиш с помощью С# в Win10 за пределами приложения

Я пытаюсь отправить простой штрих "CTRL+C" в другое окно.

Идея состоит в том, чтобы захватить текст из IE/FF/Chrome/IE/Excel/Word. Во всяком случае, я пытался использовать SendKeys.Send() и SendKeys.SendWait() и Keyboard.KeyPress() InputSimulator. Ни один из них не генерирует исключения (Ну, SendKeys.Send(), но это ожидаемо), но ни один из них на самом деле ничего не отправляет.

Я пытался просто отправить письма, и ничего не происходит. Я включу фрагменты кода, чтобы увидеть, возможно, я делаю что-то действительно сложное, но я беспокоюсь, что это проблема изоляции Win10. Кому-нибудь уже удалось отправить нажатия клавиш за пределы своего собственного приложения в Win10?

Ключи отправки:

public void DoItDamnYou()
{
    SendKeys.SendWait("C");
    MessageBox.Show("Press SHOULD have happened");
}

Симулятор ввода

public void DoItDamnYouNow()
{
    InputSimulator input = new InputSimulator();
    input.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_D);
    MessageBox.Show("Now we are in the wrapper.");
}

Если у кого-то есть какие-либо идеи, я был бы очень признателен им.

Спасибо


person OmegaNine    schedule 06.08.2015    source источник
comment
Вы запускаете свое приложение с повышенными привилегиями?   -  person Erik Philips    schedule 06.08.2015
comment
@ErikPhilips Я не был и не хотел отвечать, пока не проверил. Но заход под админом результата не дал. Все равно не отправит ключи.   -  person OmegaNine    schedule 06.08.2015
comment
Подтверждено, активное окно теряет фокус в Windows 10, когда вызывается SendKeys.SendWait, просто никто не знает об этом и не принимает меры... Я думаю, что они рассматривают это как новую функцию безопасности для Windows 10, которая нарушает многие функциональность однако...   -  person Valentin Radu    schedule 12.04.2016


Ответы (1)


Кажется, ключи отправки отключены в Windows 10. В Windows 8.1, отключение UAC в реестре, я могу использовать ключи отправки в калькулятор Windows, как обычно. В Windows 10 при отключении UAC в Retry калькулятор вообще не запустится. При включении UAC калькулятор запускается, но не принимает никаких команд Sendkeys, но принимает Ctrl+V и Ctrl+C (чтение и копирование в буфер обмена), выдаваемые непосредственно с клавиатуры.

person Adalwar    schedule 13.04.2016