我目前正在编写一个程序,该程序在最初单击时按住鼠标按钮,并继续按住它,直到用户第二次按下鼠标按钮。
该程序通过使用MouseHookListener全局检测输入来工作,然后使用输入模拟器按住已按下的鼠标按钮。
该程序能够按预期按住鼠标,但是原始鼠标单击存在问题,该信号向程序发出信号以模拟被按住的按钮;它仍然被执行。我知道 MouseHookListener 使用低级钩子来操作,但它的 HookCallBack() 方法由于受到保护而不能被覆盖。
有什么办法可以屏蔽掉原来的鼠标输入?或者有没有办法让原始输入保持不变,直到再次单击鼠标?
到目前为止,这是我生成的代码(注意 - mListener 正在其他论坛中被激活):
public MouseHold()
{
mListener = new MouseHookListener(new GlobalHooker());
mListener.MouseClick += mListener_MouseClick;
}
private bool isDown;
private int count = 0;
private InputSimulator sim = new InputSimulator();
public MouseHookListener mListener;
private void mListener_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
if (isDown)
{
isDown = false;
Console.Out.WriteLine(count);
}
else
{
Console.Out.WriteLine(count);
isDown = true;
sim.Mouse.LeftButtonDown();
}
}
}