【发布时间】:2022-12-18 06:19:34
【问题描述】:
我现在正在写一个自动点击器。以我的知识水平,我有一个很难解决的问题。 我有低级挂钩来检测鼠标 KeyDown 和 KeyUp。 `
private bool LeftButtonStatus;
private void AutoClicker_Load(object sender, EventArgs e)
{
core.mouseHook.LeftButtonDown += new MouseHook.MouseHookCallback(mouseHook_LeftKeyDown);
core.mouseHook.LeftButtonUp += new MouseHook.MouseHookCallback(mouseHook_LeftKeyUp);
}
private void mouseHook_LeftKeyDown(MouseHook.MSLLHOOKSTRUCT ma)
{
LeftButtonStatus = true;
StartClicking();
}
private void mouseHook_LeftKeyUp(KeyboardHook.VKeys key)
{
LeftButtonStatus = false;
StartClicking();
}
private void StartClicking()
{
if (LeftButtonStatus)
LeftButtonTimer.Start();
else
LeftButtonTimer.Stop();
}
private void LeftButtonTimer_Tick(object sender, EventArgs e)
{
Core.LeftClick();
}
my Click Method in Core Class Look like this:
[DllImport("user32.dll")]
private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
public static void LeftClick()
{
mouse_event(((int)KeyStates.LeftDown) | ((int)KeyStates.LeftDown), 0, 0, 0, 0);
}
` 问题是当我调用 Core.Left Click();我的钩子检测到它 并停止定时器。 如何做 Core.Left click();被 mouseHook_LeftKeyUp 和 mouseHook_LeftKeyDown 方法忽略了吗?
感谢您花时间回答我的问题 祝你有美好的一天。
我尝试了我想到的一切,但没有任何效果。
【问题讨论】: