我知道c#并且我想创建一个仅用于非活动和活动鼠标左/右按钮的功能(在c#代码中),就像AHK程序一样。你能救我吗?
答案 0 :(得分:0)
查看https://globalmousekeyhook.codeplex.com/,它具有完整的全局键盘和鼠标挂钩功能。
以下示例基于提到的鼠标右键单击抑制库
右键点击抑制器
using System;
using System.Windows.Forms;
using MouseKeyboardActivityMonitor.WinApi;
namespace Demo
{
class MouseRightClickDisable:IDisposable
{
private readonly MouseHookListener _mouseHook;
public MouseRightClickDisable()
{
_mouseHook=new MouseHookListener(new GlobalHooker());
_mouseHook.MouseDownExt += MouseDownExt;
_mouseHook.Enabled = true;
}
private void MouseDownExt(object sender, MouseEventExtArgs e)
{
if (e.Button != MouseButtons.Right) { return; }
e.Handled = true; //suppressing right click
}
public void Dispose()
{
_mouseHook.Enabled = false;
_mouseHook.Dispose();
}
}
}
<强>用法强>
internal static class Program
{
[STAThread]
private static void Main()
{
using (new MouseRightClickDisable())
Application.Run();
}
}
控制台示例
注意:添加System.Windows.Forms.dll
作为控制台应用程序的参考
internal static class Program
{
[STAThread]
private static void Main()
{
Console.WriteLine("Mouse Hook");
// our UI thread here
var t = new Thread(() =>
{
using (new MouseRightClickDisable())
Application.Run();
});
t.Start();
//some console task here!
for (var i = 0; i < 10; i++)
{
Console.WriteLine("Console Task {0}",i);
Thread.Sleep(100);
}
Console.WriteLine("press any key to terminate the application...");
Console.ReadKey();
Application.Exit();
}
}