程式運行後的介面如下圖所示:

在 C++ 中實現鍵盤滑鼠攔截相對容易,經典範例眾多;但在 C# 中受限於託管環境,若不熟悉 Hook 機制極易遇到問題。建議先參考 微軟 HOOK 技術專題 夯實基礎。
本質上是透過 P/Invoke 調用 Windows API,主要分四步:
SetWindowsHookEx(WH_Codes idHook, HookProc lpfn, IntPtr pInstance, int threadId)CallNextHookEx(IntPtr pHookHandle, int nCode, Int32 wParam, IntPtr lParam)UnhookWindowsHookEx(IntPtr pHookHandle) 釋放資源。private void start_Click(object sender, EventArgs e)
{
hook_Main.InstallHook("1"); // 安裝滑鼠鉤子
}
private void stop_Click(object sender, EventArgs e)
{
this.hook_Main.UnInstallHook(); // 卸載所有鉤子
}
private void stopkeyboard_Click(object sender, EventArgs e)
{
hook_Main.InstallHook("2"); // 安裝鍵盤鉤子
}
封裝良好的 Hook 類別可直接整合至 WinForms/WPF 專案,實現全域輸入監控與攔截。