資源簡介
C#實現鍵盤鼠標全局鉤子
VS2013,可編譯運行,帶DEMO
可全局攔截鼠標單擊/雙擊/滾動事件
可全局攔截鍵盤按鍵事件
可鎖定鍵盤鼠標輸入,比如鎖屏!
該代碼無法屏蔽Ctrl +alt +delete 需要實現所有攔截,請參考相關C++實現

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Text;
using?System.Windows.Forms;
namespace?AdrHook
{
????///?
????///?功能說明:該組件監視所有的鼠標活動在全局范圍(同時也是應用程序之外)
????///?開發人員:王旭(http://www.wxzzz.com)
????///?開發時間:2014年4月3日
????///?
????public?class?GlobalEventProvider?:?Component
????{
????????///?
????????///?該組件引發事件。該值始終為true
????????///?
????????protected?override?bool?CanRaiseEvents
????????{
????????????get
????????????{
????????????????return?true;
????????????}
????????}
????????#region?鼠標事件
????????private?event?MouseEventHandler?m_MouseMove;
????????///?
????????///?當鼠標指針移動時發生
????????///?
????????public?event?MouseEventHandler?MouseMove
????????{
????????????add
????????????{
????????????????if?(m_MouseMove?==?null)
????????????????{
????????????????????HookManager.MouseMove?+=?HookManager_MouseMove;
????????????????}
????????????????m_MouseMove?+=?value;
????????????}
????????????remove
????????????{
????????????????m_MouseMove?-=?value;
????????????????if?(m_MouseMove?==?null)
????????????????{
????????????????????HookManager.MouseMove?-=?HookManager_MouseMove;
????????????????}
????????????}
????????}
????????void?HookManager_MouseMove(object?sender?MouseEventArgs?e)
????????{
????????????if?(m_MouseMove?!=?null)
????????????{
????????????????m_MouseMove.Invoke(this?e);
????????????}
????????}
????????private?event?MouseEventHandler?m_MouseClick;
????????///?
????????///?當點擊由鼠標完成時發生
????????///?
????????public?event?MouseEventHandler?MouseClick
????????{
????????????add
????????????{
????????????????if?(m_MouseClick?==?null)
????????????????{
????????????????????HookManager.MouseClick?+=?HookManager_MouseClick;
????????????????}
????????????????m_MouseClick?+=?value;
????????????}
????????????remove
????????????{
????????????????m_MouseClick?-=?value;
????????????????if?(m_MouseClick?==?null)
????????????????{
????????????????????HookManager.MouseClick?-=?HookManager_MouseClick;
????????????????}
????????????}
????????}
????????void?HookManager_MouseClick(object?sender?MouseEventArgs?e)
????????{
????????????if?(m_MouseClick?!=?null)
????????????{
????????????????m_MouseClick.Invoke(this?e);
????????????}
????????}
????????private?event?MouseEventHandler?m_MouseDown;
????????///?
????????///?當鼠標按下鼠標按鈕時發生
????????///?
????????public?event?MouseEventHandler?MouseDown
????????{
????????????add
????????????{
????????????????if?(m_MouseDown?==?null)
????????????????{
????????????????????HookManager.MouseDown?+=?HookManager_MouseDown;
????????????????}
????????????????m_MouseDown?+=?value;
????????????}
????????????remove
????????????{
????????????????m_MouseDown?-=?value;
????????????????if?(m_MouseDown?==?null)
????????????????{
????????????????????HookManager.MouseDown?-=?HookMana
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2631??2014-04-03?11:23??codesc.net\AdrHookDemo\AdrHook\AdrHook.csproj
?????文件??????19456??2014-04-03?12:45??codesc.net\AdrHookDemo\AdrHook\bin\Debug\AdrHook.dll
?????文件??????42496??2014-04-03?12:45??codesc.net\AdrHookDemo\AdrHook\bin\Debug\AdrHook.pdb
?????文件???????9960??2014-04-03?12:45??codesc.net\AdrHookDemo\AdrHook\GlobalEventProvider.cs
?????文件??????14120??2014-04-03?12:44??codesc.net\AdrHookDemo\AdrHook\HookManager.Callback.cs
?????文件??????10308??2014-04-03?11:40??codesc.net\AdrHookDemo\AdrHook\HookManager.cs
?????文件???????3038??2014-04-03?12:44??codesc.net\AdrHookDemo\AdrHook\HookManager.Structures.cs
?????文件???????5629??2014-04-03?12:44??codesc.net\AdrHookDemo\AdrHook\HookManager.Windows.cs
?????文件???????1264??2014-04-03?12:44??codesc.net\AdrHookDemo\AdrHook\MouseEventExtArgs.cs
?????文件????????623??2014-04-03?12:45??codesc.net\AdrHookDemo\AdrHook\obj\Debug\AdrHook.csproj.FileListAbsolute.txt
?????文件??????19456??2014-04-03?12:45??codesc.net\AdrHookDemo\AdrHook\obj\Debug\AdrHook.dll
?????文件??????42496??2014-04-03?12:45??codesc.net\AdrHookDemo\AdrHook\obj\Debug\AdrHook.pdb
?????文件???????5821??2014-04-03?12:35??codesc.net\AdrHookDemo\AdrHook\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????1338??2014-04-03?11:09??codesc.net\AdrHookDemo\AdrHook\Properties\AssemblyInfo.cs
?????文件???????3764??2014-04-03?12:39??codesc.net\AdrHookDemo\AdrHookDemo\AdrHookDemo.csproj
?????文件??????19456??2014-04-03?12:45??codesc.net\AdrHookDemo\AdrHookDemo\bin\Debug\AdrHook.dll
?????文件???????5883??2014-04-03?12:45??codesc.net\AdrHookDemo\AdrHookDemo\FrmMain.cs
?????文件??????12775??2014-04-03?12:39??codesc.net\AdrHookDemo\AdrHookDemo\FrmMain.Designer.cs
?????文件???????5817??2014-04-03?12:39??codesc.net\AdrHookDemo\AdrHookDemo\FrmMain.resx
?????文件????????474??2014-04-03?12:35??codesc.net\AdrHookDemo\AdrHookDemo\Program.cs
?????文件???????1346??2014-04-03?12:34??codesc.net\AdrHookDemo\AdrHookDemo\Properties\AssemblyInfo.cs
?????文件???????2874??2014-04-03?12:34??codesc.net\AdrHookDemo\AdrHookDemo\Properties\Resources.Designer.cs
?????文件???????5612??2014-04-03?12:34??codesc.net\AdrHookDemo\AdrHookDemo\Properties\Resources.resx
?????文件???????1098??2014-04-03?12:34??codesc.net\AdrHookDemo\AdrHookDemo\Properties\Settings.Designer.cs
?????文件????????249??2014-04-03?12:34??codesc.net\AdrHookDemo\AdrHookDemo\Properties\Settings.settings
?????文件???????1477??2014-04-03?12:39??codesc.net\AdrHookDemo\AdrHookDemo.sln
????..A..H.?????27136??2014-04-03?12:39??codesc.net\AdrHookDemo\AdrHookDemo.v12.suo
?????文件????????178??2018-07-28?10:01??codesc.net\AdrHookDemo\說明.txt
?????目錄??????????0??2014-04-03?11:09??codesc.net\AdrHookDemo\AdrHook\obj\Debug\TempPE
?????目錄??????????0??2018-07-28?10:00??codesc.net\AdrHookDemo\AdrHook\bin\Debug
............此處省略16個文件信息
- 上一篇:雅可比迭代C++實現
- 下一篇:特殊矩陣和壓縮存儲
評論
共有 條評論