日志钩子?(100分)

  • 主题发起人 主题发起人 Lidong
  • 开始时间 开始时间
L

Lidong

Unregistered / Unconfirmed
GUEST, unregistred user!
我在计算机世界上看到一偏关于日志钩子的文章,但我自己实验的时候却怎么也编译不了,
说我安装日志钩子时错误,哪为高人有空的时候请帮忙查查错,代码如下:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
g_hLogHook=NULL;//钩子变量
g_hLastFocus=NULL;
//记录上一次得到焦点的窗口句柄
}
//---------------------------------------------------------------------------
//钩子回调函数:
HOOKPROC __fastcall TForm1::JournalLogProc(int iCode,WPARAM wParam,LPARAM lParam)
{
if(iCode<0)
return (HOOKPROC)CallNextHookExg_hLogHook,iCode,wParam,lParam);
if(iCode==HC_ACTION)
//略
}
//---------------------------------------------------------------------------
//安装日志钩子
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//
if(g_hLogHook==NULL)
g_hLogHook=SetWindowsHookEx(WH_JOURNALRECORD,(HOOKPROC)JournalLogProc,HInstance,0);
}
//---------------------------------------------------------------------------
//卸载日志钩子
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(g_hLogHook!=NULL)
{UnhookWindowsHookEx(g_hLogHook);
g_hLogHook=NULL;
}//卸载日志钩子
}
//---------------------------------------------------------------------------
 
SetWindowsHookEx(WH_JOURNALRECORD,(HOOKPROC)JournalLogProc,HInstance,0);
如果dwThreadId为0,要写成DLL,而你的是EXE。
 
但据说日志钩子比较特殊,不用单独的DLL文件
 
日志钩子可以直接用在exe文件中,而且实现的功能也很强大.不仅可以记录还可以播放.
我编写过日志钩子,效果很好.(但在win2000/nt中,不能关机,此问题我现在还没解决
,那位有办法的请m@il: sunstone@263.net)
HOOKPROC __fastcall TForm1::JournalLogProc(int iCode,WPARAM wParam,LPARAM lParam)
我对C语言不懂,如果按delphi语言理解 不应该用Tform1:: 因为钩子过程是一个单独的过程.不利属于form1
 
能否给出个例子,什么语言都行,只要完整。
 
在win2000/nt中,不能关机,此问题我现在已经解决.原来是smtp控件的原因!
大家可以到我的主页上看看我的 [编程心得],交流一下!
http://sunhy.126.com
m@il: sunstone@263.net)
 
谢谢sunstone!问题果然出在“Tform1:: ”上
 
接受答案了.
 
大家可以到我的主页上看看我的 [编程心得],交流一下!http://sunhy.126.comm@il: sunstone@263.net)
 
后退
顶部