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

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

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

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

SendKeys:

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

InputSimulator

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

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

Спасибо

1 ответ

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

Другие вопросы по тегам