2013-09-20 3 views
2

Я использую InputSimulator для имитации нажатия клавиш и щелчков мышью. Каждый ключ, который я тестировал, работает, за исключением кнопок мыши. Я посылаю их следующим образом:InputSimulator не имитирует щелчки мыши

private void button2_Click(object sender, EventArgs e) //In this example I am trying to simulate the left mouse button 
    { 
     System.Threading.Thread.Sleep(2000); 
     InputSimulator.SimulateKeyPress(VirtualKeyCode.LBUTTON); 
    } 

Но ничего не происходит. Я что-то делаю неправильно?

Библиотека: InputSimulator

+0

Кажется, что это известная проблема (возможно) [Моделирование LButton не работает] (https://inputsimulator.codeplex.com/workitem/13006) – LarsTech

ответ

1

Я не знаю много о InputStimulator но согласно this post. Вы можете стимулировать щелчок мышью с помощью;

 [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] 
     public static extern void mouse_event(uint dwFlags, int dx, int dy, int dwData, int dwExtraInfo); 

     private const int MOUSEEVENTF_ABSOLUTE = 0x8000; 
     private const int MOUSEEVENTF_LEFTDOWN = 0x0002; 
     private const int MOUSEEVENTF_LEFTUP = 0x0004; 
     private const int MOUSEEVENTF_MIDDLEDOWN = 0x0020; 
     private const int MOUSEEVENTF_MIDDLEUP = 0x0040; 
     private const int MOUSEEVENTF_MOVE = 0x0001; 
     private const int MOUSEEVENTF_RIGHTDOWN = 0x0008; 
     private const int MOUSEEVENTF_RIGHTUP = 0x0010; 
     private const int MOUSEEVENTF_WHEEL = 0x0800; 
     private const int MOUSEEVENTF_XDOWN = 0x0080; 
     private const int MOUSEEVENTF_XUP = 0x0100; 

     //................................. 
     //In your own function: 

     int X = 1220; 
     int Y = 13; 
     mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, X, Y, 0, 0); 
     mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0); 

Не забудьте добавить using System.Runtime.InteropService;

+1

да, это то, что я использовал в качестве обходного пути сейчас. –

+0

про прокрутку; Можете ли вы дать мне пример прокрутки по горизонтали и вертикали? –

5

Последняя версия InputSimulator поддерживает события мыши. Вот как его использовать:

var sim = new InputSimulator(); 
sim.Mouse.LeftButtonClick(); 

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

+0

Где я могу найти последнюю версию? –

+0

Получить исходный код здесь: https://inputsimulator.codeplex.com/SourceControl/latest – yallie

+0

С этим проектом сложно сказать, что текущий пакет NuGet «Windows Input Simulator» - версия 1.0.4.0 и был опубликован 12 декабря -2013. Последний исходный код имеет версию сборки 0.2.0.0 (а не опечатку!) И датируется с того же дня (12 декабря 2013 года). Хм. – Julius

Смежные вопросы