c#鍵盤鉤子全解
using system;
using system.collections.generic;
using system.text;
using system.runtime.interopservices;//呼叫作業系統動態鏈結庫
using system.reflection;
using system.diagnostics;
using microsoft.win32;
using system.windows.forms;
namespace util
; //if(hook!=null) hook.uninstallhook();
//定義常量
public const int wh_keyboard_ll = 13; //全域性鉤子鍵盤為13,執行緒鉤子鍵盤為2
public const int wm_keydown = 0x0100; //鍵按下0x0101為鍵彈起
public static int wm_keyup = 0x0101;
public const int wm_syskeydown = 0x0104;
//鍵盤處理事件委託 ,當捕獲鍵盤輸入時呼叫定義該委託的方法.(定義函式指標)
public delegate int hookhandle(int ncode, int wparam, intptr lparam);
//客戶端鍵盤處理事件
public delegate void 呼叫端函式(資訊結構體 param, out bool handle);
//接收setwindowshookex返回值
private static int 是否以安裝 = 0;
//宣告乙個指向執行函式的函式指標
private hookhandle 執行函式引用;
//定義儲存按鍵資訊的結構體
[structlayout(layoutkind.sequential)]
public class 資訊結構體
//設定鉤子
//idhook為13代表鍵盤鉤子為14代表滑鼠鉤子,lpfn為函式指標,指向需要執行的函式,hinstance為指向程序塊的指標,threadid預設為0就可以了
[dllimport("user32.dll")]
private static extern int setwindowshookex(int idhook, hookhandle lpfn, intptr hinstance, int threadid);
//取消鉤子
[dllimport("user32.dll", charset = charset.auto, callingconvention = callingconvention.stdcall)]
private static extern bool unhookwindowshookex(int idhook);
//呼叫下乙個鉤子
[dllimport("user32.dll")]
private static extern int callnexthookex(int idhook, int ncode, int wparam, intptr lparam);
//獲取當前執行緒id(獲取程序塊)
[dllimport("kernel32.dll")]
private static extern int getcurrentthreadid();
//gets the main module for the associated process.
[dllimport("kernel32.dll")]
private static extern intptr getmodulehandle(string name);
private intptr 程序塊 = intptr.zero;
//構造器
public 鍵盤鉤子類()
//外部呼叫的鍵盤處理事件
private static 呼叫端函式 呼叫函式引用 = null;
///
/// 安裝勾子
///
///外部呼叫的鍵盤處理事件
public void installhook(呼叫端函式 clientmethod)
}//取消鉤子事件
public void uninstallhook()
}//鉤子事件內部呼叫,呼叫_clientmethod方法**到客戶端應用。
private static int 執行函式(int ncode, int wparam, intptr lparam)
}return callnexthookex(是否以安裝, ncode, wparam, lparam);}}
}
c 滑鼠鉤子全解
using system.runtime.interopservices 呼叫作業系統動態鏈結庫 using system.diagnostics using system.windows.forms namespace util if hook null hook.uninstallhook pu...
C 鍵盤鉤子
鍵盤鉤子是一種可以監控鍵盤操作的指令,我們去釣魚只要魚兒上鉤 不管它怎麼逃,只要掌控好鉤子上的繩子總是可以找到這條魚,鍵盤 鉤子是利用電腦一行行執行 特性,在目的視窗處理鍵 前攔截 把某個指令替換為另外一種指令,然後再把訊息傳送給目的視窗這樣 乙個週期下來,視窗程式會認為使用者輸入的就是現在的數值或...
c 全域性鍵盤鉤子
using system using system.collections.generic using system.text using system.windows.forms using system.runtime.interopservices using system.diagnosti...