利用hook遮蔽程式中的按鍵

2021-06-16 12:02:14 字數 1998 閱讀 4972

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.text;

using system.windows.forms;

using system.runtime.interopservices;

using system.reflection;

using system.diagnostics;

using microsoft.win32;

namespace windowshookmanage

//catch

hook_start();

}//委託

public delegate int hookproc(int ncode, int wparam, intptr lparam);

static int hhook = 0;

public const int wh_keyboard_ll = 13;

//lowlevel鍵盤截獲,如果是wh_keyboard=2,並不能對系統鍵盤擷取,acrobat reader會在你擷取之前獲得鍵盤。

hookproc keyboardhookprocedure;

//鍵盤hook結構函式

[structlayout(layoutkind.sequential)]

public class keyboardhookstruct

#region dllimport

//設定鉤子

[dllimport("user32.dll")]

public static extern int setwindowshookex(int idhook, hookproc lpfn, intptr hinstance, int threadid);

[dllimport("user32.dll", charset = charset.auto, callingconvention = callingconvention.stdcall)]

//抽掉鉤子

public static extern bool unhookwindowshookex(int idhook);

[dllimport("user32.dll")]

//呼叫下乙個鉤子

public static extern int callnexthookex(int idhook, int ncode, int wparam, intptr lparam);

[dllimport("kernel32.dll")]

public static extern int getcurrentthreadid();

[dllimport("kernel32.dll")]

public static extern intptr getmodulehandle(string name);

#endregion

#region 自定義事件

public void hook_start()}}

//取消鉤子事件

public void hook_clear()

//如果去掉鉤子失敗.

if (!retkeyboard) throw new exception("unhookwindowshookex failed.");

}//這裡可以新增自己想要的資訊處理

public static int keyboardhookproc(int ncode, int wparam, intptr lparam)

if (kbh.vkcode == (int)keys.lwin)//遮蔽windows鍵

}return callnexthookex(hhook, ncode, wparam, lparam);

}#endregion

}}

利用底層鍵盤鉤子遮蔽任意按鍵

很多人都知道,如果想在系統範圍內遮蔽鍵盤上的任意按鍵需要使用全域性鍵盤鉤子,然而像win鍵這樣 倔強 的按鍵又不是普通的鍵盤鉤子就能搞定的。這裡我提供一種利用底層鍵盤鉤子遮蔽任意按鍵 包括win鍵 的方法,並且作成了.dll動態鏈結庫,方便以後使用。鉤子,是一種相對複雜一點的技術,通常用來監視系統中...

利用GIT的HOOK機制,為程式自動生成版本資訊

利用git的hook機制,為程式自動生成版本資訊 1.git init.建立git倉庫,可以發現.git hooks目錄下有一堆 sample 2.找到post commit.sample,post commit表示提交 後觸發的命令,把字尾去掉 3.在檔案最後加入命令,用於在提交之後自動生成包括h...

linux中event按鍵程式

嵌入式linux裝置中經常會使用按鍵,如果驅動遵循標準的linux input驅動,那麼應用程式中該怎麼獲得按鍵的狀態和鍵值呢?本文就來講講event input按鍵應用程式設計。首先要包含標頭檔案 include 定義裝置號 define key event dev dev event0 最重要的...