|
|
此类问题在google上也有信息 但是都比较零散 寻遍Intel终于被我找到了一个dll文件(Kennedy.ManagedHooks.dll)您有可能会问了,这是什么文件?下面听我云:
Kennedy.ManagedHooks.dll此dll文件是已经编写好的钩子代码,我们只需要在外部进行调用就可以了
这里面写了2类系统全局钩子(鼠标and键盘)。好了,现在先不去考虑dll文件里面的具体实现细节,我们只需要简单的调用即可(具体细节有时间再说,时间比较紧张)。
C#建立WinForm应用程序
窗体名称MainForm.cs
这里只给出一些主要实现方法(其余的大家自己去研究吧,在研究中还会学习到很多知识的)
钩子的安装
private void buttonInstall_Click(object sender, System.EventArgs e)
{
// EXAMPLE CODE SECTION
AddText("Adding mouse hook.");
mouseHook.InstallHook();
AddText("Adding keyboard hook.");
keyboardHook.InstallHook();
buttonInstall.Enabled = false;
buttonUninstall.Enabled = true;
}
钩子的卸载
private void buttonUninstall_Click(object sender, System.EventArgs e)
{
// EXAMPLE CODE SECTION
mouseHook.UninstallHook();
AddText("Mouse hook removed.");
keyboardHook.UninstallHook();
AddText("Keyboard hook removed.");
buttonInstall.Enabled = true;
buttonUninstall.Enabled = false;
}
鼠标操作监听
private void mouseHook_MouseEvent(Kennedy.ManagedHooks.MouseEvents mEvent, Point point)
{
string msg = string.Format("Mouse event: {0}: ({1},{2}).", mEvent.ToString(), point.X, point.Y);
if (mEvent.Equals(Kennedy.ManagedHooks.MouseEvents.LeftButtonDown ))
{
AddText("鼠标左键被按下");
//获取系统进程信息
System.Diagnostics.Process[] allProcesses = System.Diagnostics.Process.GetProcesses();
//显示系统进程数量.
AddText(allProcesses.Length.ToString());
//终止系统进程
// allProcesses[0].Kill();
//获取explorer进程信息
System.Diagnostics.Process[] explorer = System.Diagnostics.Process.GetProcessesByName("explorer");
explorer[0].Kill();
}
AddText(msg);
}
键盘的监听
private void keyboardHook_KeyboardEvent(Kennedy.ManagedHooks.KeyboardEvents kEvent, Keys key)
{
if (key.Equals(System.Windows.Forms.Keys.PrintScreen))
{
AddText("PrintScreen被按下");
key = System.Windows.Forms.Keys.B;
}
if (key.Equals (System.Windows.Forms.Keys.Control ))
{
AddText("Ctrl被按下:"+key);
key = System.Windows.Forms.Keys.N ;
AddText("Ctrl被更改:" + key);
}
string msg = string.Format("Keyboard event: {0}: {1}.", kEvent.ToString(), key);
AddText(msg);
}
这样您就实现了鼠标and键盘的监听功能
需要其他操作的话 可以更改鼠标and键盘监听里面的代码!
谢谢! |
|