用全域性掛鉤檢測當前視窗是否啟用

2021-09-26 04:43:00 字數 1758 閱讀 1194

使用全域性掛鉤的前提是使用dll

dll.cpp

#include "stdafx.h"

#include #include hmodule thismodule;

hhook hook;

lresult callback launchlistener(int ncode, wparam wparam, lparam lparam);

bool apientry dllmain(hmodule hmodule, dword ul_reason_for_call, lpvoid lpreserved)

return true;

}#ifdef __cplusplus // if used by c++ code,

extern "c"

#ifdef __cplusplus

}#endif

lresult callback launchlistener(int ncode, wparam wparam, lparam lparam)

else

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

test_hook.cpp

#include #include //lresult callback wndproc(hwnd, uint, wparam, lparam);

lresult callback wndproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)

return defwindowproc(hwnd, message, wparam, lparam);

};hinstance hinst;

int winapi winmain(hinstance hinstance, hinstance hprevinstance, pstr szcmdline, int icmdshow) ;

wc.lpfnwndproc = wndproc;

wc.hinstance = hinst;

wc.lpszclassname = "hooking";

// register class with operating system:

registerclass(&wc);

// create and show window:

if (hwnd == null)

showwindow(hwnd, sw_show);

dword threadid = getwindowthreadprocessid(hwnd, null);

hinstance hinstdll = loadlibrary(text("..\\debug\\prochookdll.dll"));

hhook(*attachhookproc)(dword);

attachhookproc = (hhook(*)(dword)) getprocaddress(hinstdll, "attachhook");

// attachhookproc(threadid);

hhook hook = attachhookproc(threadid);

int i = getlasterror();

msg msg = {};

while (getmessage(&msg, null, 0, 0))

}

需要注意的是,這個僅限於檢測當前視窗的活動狀態,等我有時間再測試能否檢測其他視窗的狀態。

C 全域性鍵盤檢測GetAsyncKeyState

我們在程式設計中有時候需要用到全域性鍵盤按鍵 通俗的講就是 自己的程式在任何時候都能接收鍵盤按鍵 聽起來有點像鍵盤鉤子。最近在用c 準備寫乙個螢幕錄影的軟體,想到使用者可以通過鍵盤來進行開始 停止等操作。當這個問題來的時候我們可能都會想到用 keypress keydown keyup等來處理鍵盤按...

體驗用yarp當閘道器

yarp是微軟開源的乙個用.net實現的反向 工具包,github庫就叫reverse proxy 反向 吐槽一下微軟起名字233333 nuget包preview9之前都叫microsoft.reverseproxy,preview10變成yarp.reverseproxy了 放上鏈結 由於公司技...

過載全域性new delete實現記憶體檢測

下面介紹用過載new delete運算子的方式來實現乙個簡單的記憶體洩露檢測工具,基本思想是過載全域性new delete運算子,被檢測 呼叫new和delete運算子時就會呼叫過載過的operator new和operator delete,在過載的operator new裡和operator d...