2013-05-02 3 views
1

Я пытаюсь создать программу окон, которая заставляет компьютер действовать так, как будто я нажал кнопку мыши. Я хочу управлять событиями вручную (выбор времени не задан заранее), и его необходимо нажать и удерживать, поэтому выпуск кнопки мыши должен быть отдельным событием.Имитация событий мыши? C#

Следующая информация не должна изменить код, просто помочь вам в дальнейшем понять мою ситуацию:

  • Цель состоит в том, чтобы разрешить ввод данных пользователя из 360 контроллера Xbox (совместимый с ПК), чтобы рулить/управлять компьютером что он связан с.
  • Лучшим решением, которое я нашел до сих пор, является метод «Windows.Forms.SendKeys», но он работает только для событий клавиатуры.

Заранее благодарен! : D

+0

Вы canuse в 'PerformClick()' метод, если вы просто хотите, чтобы нажать на кнопки. [Button.PerformClick Method Documentation] (http://msdn.microsoft.com/en-us/library/system.windows.forms.button.performclick.aspx) Если вы хотите получить только общие клики мыши, вы можете увидеть следующий поток , http://stackoverflow.com/questions/2416748/how-to-simulate-mouse-click-in-c – guanabara

ответ

3

моделировать события мыши, как этот

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] 
    public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo); 
    private const int MOUSEEVENTF_LEFTDOWN = 0x02; 
    private const int MOUSEEVENTF_LEFTUP = 0x04; 
    private const int MOUSEEVENTF_RIGHTDOWN = 0x08; 
    private const int MOUSEEVENTF_RIGHTUP = 0x10; 

пример использования:

public static void leftClick() 
    { 
     mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); 
    } 
+0

Я пробовал метод mouse-event, но даже если нажатие и отключение можно отделить, эффект был тот же: нажмите и выпустить в одно и то же время. – KingsNshit

+1

Вы можете разделить keydown и keyup следующим образом: mouse_event (MOUSEEVENTF_LEFTDOWN, 0, 0, 0, IntPtr.Zero); http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/dd375b80-775e-4c8b-ab25-2985f272ddec –

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