Как использовать в скрытом оверлей определенные горячие клавиши
Мне нужно использовать клавишу которая будет включать и отключать код на определенную клавишу.
В курсе что есть хуки, но мне нужно разобраться как мне в этой ситуации их использовать правильно, чтобы все хорошо работало.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Opacity = 0;
}
private void Form1_Load(object sender, EventArgs e)
{
ClickMouse();
}
private void ClickMouse()
{
int c = 0;
POINT p = new POINT();
while (true)
{
GetCursorPos(ref p);
ClientToScreen(Handle, ref p);
DoMouseDoubleLeftClick(p.x, p.y);
c++;
Thread.Sleep(200);
if (c == 10)
break;
}
}
[DllImport("user32.dll")]
public static extern bool ClientToScreen(IntPtr hWnd, ref POINT point);
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int x;
public int y;
}
[DllImport("user32.dll")]
public static extern void mouse_event(int dsFlags, int dx, int dy, int cButtons, int dsExtraInfo);
public const int MOUSEENTF_LEFTDOWN = 0x02;
public const int MOUSEENTF_LEFTUP = 0X04;
public const int MOUSEENTF_RIGHTDOWN = 0x08;
public const int MOUSEENTF_RIGHTUP = 0x10;
private void DoMouseLeftClick(int x, int y)
{
mouse_event(MOUSEENTF_LEFTDOWN, x, y, 0, 0);
mouse_event(MOUSEENTF_LEFTUP, x, y, 0, 0);
}
private void DoMouseRightClick(int x, int y)
{
mouse_event(MOUSEENTF_LEFTDOWN, x, y, 0, 0);
mouse_event(MOUSEENTF_LEFTUP, x, y, 0, 0);
}
private void DoMouseDoubleLeftClick(int x, int y)
{
mouse_event(MOUSEENTF_LEFTDOWN, x, y, 0, 0);
mouse_event(MOUSEENTF_LEFTUP, x, y, 0, 0);
mouse_event(MOUSEENTF_LEFTDOWN, x, y, 0, 0);
mouse_event(MOUSEENTF_LEFTUP, x, y, 0, 0);
}
[DllImport("user32.dll")]
public static extern bool GetCursorPos(ref POINT lpPoint);
}