Помогите заставить работать интерфейс C # 'Windows Input Simulator' - PullRequest
1 голос
/ 15 января 2010

Это выглядит идеально для того, что я пытаюсь сделать. Мне нужно перестать дурачиться с помощью SendInput () и позволить кому-то другому сделать это за меня!

http://inputsimulator.codeplex.com/

Проблема в том, что нет документации для того, чтобы заставить код работать так же просто, как на домашней странице. Может ли кто-нибудь помочь мне с «другим кодом», который мне нужен в моей программе, чтобы я мог просто набрать InputSimulator.SimulateKeyPress(VirtualKeyCode.SPACE);, как он делает в примерах?

Я начал с:

[DllImport("InputSimulator.dll", CharSet = CharSet.Auto, SetLastError = true)]

что я считаю правильным. Что еще мне нужно?

Спасибо!

Ответы [ 3 ]

5 голосов
/ 15 января 2010

Проект + Добавить ссылку, вкладка Обзор, выберите загруженную DLL.

3 голосов
/ 25 апреля 2011

Чтобы библиотека работала, вам нужно сделать две вещи.

  1. Добавьте InputSimulator.dll в ваш проект, вы можете сделать это, щелкнув правой кнопкой мыши на вашем проекте, перейти к добавлению ссылки, затем использовать вкладку обзора, перейти к вашему InputSimulator.dll (yourFolder \ InputSimulator \ bin \ Release \ InputSimulator.dll).

  2. Добавьте следующую строку в начало вашей программы, использование WindowsInput;

Теперь вы можете получить доступ к функциональности файла .dll.

В качестве примера попробуйте следующее,

InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_D);
0 голосов
/ 23 января 2019

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

Вы должны создать экземпляр InputSimulator и вызвать его с помощью приведенного ниже синтаксиса. Это пример того, как имитировать «клавишу Shift» вниз перед процессом и «клавишу Shift вверх» после процесса:

var inputSimulator = new InputSimulator();
inputSimulator.Keyboard.KeyDown((VirtualKeyCode.SHIFT));

//myProcess.Start();

inputSimulator.Keyboard.KeyUp((VirtualKeyCode.SHIFT));

если вы хотите смоделировать другие клавиши, используйте следующий пример:

inputSimulator.Keyboard.KeyPress(VirtualKeyCode.VK_H);
inputSimulator.Keyboard.KeyPress(VirtualKeyCode.VK_E);
inputSimulator.Keyboard.KeyPress(VirtualKeyCode.VK_L);
inputSimulator.Keyboard.KeyPress(VirtualKeyCode.VK_L);
inputSimulator.Keyboard.KeyPress(VirtualKeyCode.VK_O);
inputSimulator.Keyboard.KeyPress(VirtualKeyCode.VK_1);
...