日志钩子怎么传递数值给我自己的主程序,该怎么做?

lamanmi 2004-02-18 07:52:17
源程序如下:
日志钩子无法给TForm1的变量置值。
//---------------------------------------------------------------------------

#include <vcl.h>
#include <windows.h>
#include <fstream.h>

#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

HHOOK g_hLogHook = NULL; //钩子变量
HWND g_hLastFocus = NULL;//记录上一次得到焦点的窗口句柄
const int KeyPressMask = 0x80000000; //键盘掩码常量
char g_PrvChar; //保存上一次按键值

HOOKPROC JournalLogProc( int iCode, WPARAM wParam, LPARAM lParam )
{
if ( iCode < 0 )
return ( HOOKPROC )CallNextHookEx( g_hLogHook, iCode, wParam, lParam );
if ( iCode == HC_ACTION )
{
EVENTMSG * pEvt = ( EVENTMSG * ) lParam;
int i; HWND hFocus; //保存当前活动窗口句柄
if ( pEvt->message == WM_KEYDOWN )
{
int vKey = LOBYTE( pEvt->paramL ); // 取得虚拟键值
int iShift = GetKeyState( 0x10 );
//测试SHIFT,CAPTION,NUMLOCK等键是否按下
bool bShift = ( iShift & KeyPressMask ) == KeyPressMask;
//按下?的时候置值
if ( vKey==191 &&bShift)
{
x=1;
y=2;
}

}

return ( HOOKPROC )CallNextHookEx( g_hLogHook, iCode, wParam, lParam );
}
}

TForm1 * Form1;



//---------------------------------------------------------------------------
__fastcall TForm1::TForm1( TComponent * Owner ) : TForm( Owner )
{
}

//---------------------------------------------------------------------------

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;
} //卸载日志钩子
}
//---------------------------------------------------------------------------






void __fastcall TForm1::FormCreate(TObject *Sender)
{
Edit1->Text=y;
}
//---------------------------------------------------------------------------
...全文
16 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复

还没有回复,快来抢沙发~

相关推荐
基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar 1 引言 4 1.1 课程设计目标 4 1.2 编程工具(编程环境)介绍 4 1.3 实施时间及主要实施步骤 4 2 需求分析 5 3 系统总体设计 6 4 数据库设计 6 5 主要功能模块的设计与实现 10 5.1 功能模块1详细设计(综合查询员工信息)..........................................................10 5.1.1 详细设计.......................................................................................................10 5.1.2 算法流程........................................................................................................15 5.1.3 界面设计及测试结果.....................................................................................15 6 调试分析 15 7 用户手册 16 8 测试结果 17 8.1 员工信息的添加...................................................................................................17 8.2 员工信息的修改...................................................................................................17 8.3 员工信息的删除...................................................................................................18 8.4 员工信息的综合查询...........................................................................................18 8.5 员工信息按性别统计的结果................................................................................19 8.6 员工信息按状态统计的结果...............................................................................19 8.7 员工信息按职称统计的结果................................................................................20 9 结论 20 10 参考文献 20
发帖
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
帖子事件
创建了帖子
2004-02-18 07:52
社区公告
暂无公告