c 鍵盤鉤子全解

2021-12-29 21:44:35 字數 2385 閱讀 3433

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...