http://good.gd/348868.htm
Õâ¸öÊÇÔ´ÂëÁË£¡¸ßÊÖ°ïæһÏ£¬Ð»Ð»
?
??
Â¥Ö÷Äܲ»ÄܰѴúÂëÌù³öÀ´£¿
¸Ð¾õÊÇÔÚË¢¹ã¸æ
// RegisterHookDlg.cpp : ʵÏÖÎļþ
//
#include "stdafx.h"
#include "RegisterHook.h"
#include "RegisterHookDlg.h"
#include ".\registerhookdlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
typedef DWORD (CALLBACK * USERAPIHOOKPROC)(HINSTANCE hInstance, FARPROC *fnUserApis);
typedef DWORD (WINAPI * SYS_RegisterUserApiHookXP)(HINSTANCE hInstance, USERAPIHOOKPROC fnUserApiHook);
typedef BOOL (WINAPI * SYS_UnregisterUserApiHook)(VOID);
SYS_RegisterUserApiHookXP RegisterUserApiHookXP = NULL;
SYS_UnregisterUserApiHook UnregisterUserApiHook = NULL;
HMODULE g_hModule = NULL;
DWORD InHook()
{
DWORD rt = 0;
USERAPIHOOKPROC UserApiProc = NULL;
(FARPROC&)RegisterUserApiHookXP = GetProcAddress(LoadLibrary("user32"), "RegisterUserApiHook");
(FARPROC&)UserApiProc = GetProcAddress(g_hModule, "UserApiProc");
if ( RegisterUserApiHookXP != NULL && UserApiProc != NULL )
rt = RegisterUserApiHookXP(g_hModule, UserApiProc);
return rt;
}
BOOL UnHook()
{
BOOL rt = FALSE;
¾ÍÊÇÒ»¸ö·þÎñ¶ËºÍÒ»¸ö¿Í»§¶Ë£¬Àï±ßÓÐһЩ¹²Óõ¥Ôª £¬ÎÒÔÚ ¹¤³ÌµÄSEARCH PATHÀïÉèÖõÄ·¾¶£¬
Àï±ßÓиö½á¹¹Ì壬ÎÒÔÚ·þÎñ¶Ë´ò¿ª£¬¼ÓÁ˳ÉÔ±£¬µ«ÊÇÎÒÔÚ¿Í»§¶ËÆäËûµ¥Ôª·ÃÎʲ»µ½ÎÒмӵģ¬ÎÒÔÚ¿Í»§¶Ë´ò¿ªÄǸöµ¥Ôª£¬È·Êµ¼ÓÁ ......
ÈçÌ⣬ µã»÷DelphiµÄFile²Ëµ¥µÄExitÍ˳öDelphi£¬ Delphi²¿·Ö¹Ø±Õ--¼´²»ÄÜÔÙ²Ù×÷Delphi£¬µ«ÈÎÎñÀ¸ºÍ½ø³ÌÀDelphi»¹ÔÚÔËÐУ¬Ã»ÓÐÕæÕýµÄÍ˳ö¡£ÊDz»Êǰ²×°ÁËjre¸Ä±äÁËijЩ»·¾³±äÁ¿µ¼Ö£¬ÇëÎʸßÊÖÈçºÎ½â¾ö£¿ ×¢£ºÃ»°²×° ......