Программное нажатие ЛКМ на C# вне формы.

Как можно программно нажать левую кнопку мыши вне формы?

1 ответов


Можно, но придётся использовать WinAPI. Ничего сложного нет, нужно только аккуратно и внимательно писать код. Конкретно вам необходима SetWindowsHookEx. Вот тут готовая обёртка: http://www.codeproject.com/KB/system/globalsystemhook.aspx.
UPDATE
Не заметил, что необходимо не отлавливать щелчки, а симулировать. Тут тоже придёт на помощь WinAPI. Вот пример:


using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
public class Form1 : Form
{
   [DllImport("user32.dll",CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
   public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long 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 Form1()   {   }
   public void DoMouseClick()
   {
      int X = Cursor.Position.X;
      int Y = Cursor.Position.Y;
      mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
   }
 }