| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2092 人关注过本帖
标题:[求助]关于给进程发送一个键盘消息
只看楼主 加入收藏
wwjazz
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-8-24
收藏
 问题点数:0 回复次数:2 
[求助]关于给进程发送一个键盘消息
我做了一个DLL的HOOK,我想给我鼠标指定的进程发送一个键盘按下1这个键的消息,可是怎么也弄不了,各位帮帮忙


源程序:

gSXgGXsH.rar (36.35 KB) [求助]关于给进程发送一个键盘消息


[此贴子已经被作者于2007-4-20 21:26:43编辑过]

搜索更多相关主题的帖子: 鼠标 进程 键盘 HOOK 
2007-04-20 21:26
Janlex
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:303
专家分:0
注 册:2006-9-12
收藏
得分:0 
g_hMouse=SetWindowsHookEx(WH_MOUSE,MouseProc,GetModuleHandle("Hook"),0);
g_hKeyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("Hook"),0);

第四个参数说明是全局钩子,而全局钩子必须将钩子过程函数放在dll中.

★★★★★欢迎光临我的博客 ★★★★★
http://www.
2007-04-20 22:47
wwjazz
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-8-24
收藏
得分:0 

我是钩子过程函数放在dll中了,可是还不行,还有个问题就是,记事本在前台激活状态为什么用快捷键不能启动钩子过程???必须要在有钩子的程序中才能启动钩子,有什么办法可以解决吗?

代码如下:

#include <windows.h>

#pragma data_seg("MySec")
HHOOK g_hMouse=NULL;
HWND g_wnd=NULL;
HHOOK g_hKeyboard=NULL;
HWND g_hWnd=NULL;
#pragma data_seg()


LRESULT CALLBACK MouseProc( int nCode , WPARAM wParam , LPARAM lParam )
{
LPMOUSEHOOKSTRUCT pm = ( MOUSEHOOKSTRUCT FAR*)lParam;
g_wnd = pm -> hwnd;
return CallNextHookEx( g_hKeyboard , nCode , wParam , lParam );;
}

VOID CALLBACK TimerProc ( HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)
{
PostMessage ( g_wnd , WM_KEYDOWN , 0x31 , 0 );
}

LRESULT CALLBACK KeyboardProc( int nCode , WPARAM wParam , LPARAM lParam )
{
if(VK_F2==wParam && (1==(lParam>>29&1)))
{
SetTimer ( g_hWnd , 1 , 100 , TimerProc );
}
if(VK_F3==wParam && (1==(lParam>>29&1)))
{
KillTimer ( g_hWnd , 1 );
}
return CallNextHookEx( g_hMouse , nCode , wParam , lParam );
}


2007-04-20 23:40
快速回复:[求助]关于给进程发送一个键盘消息
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011776 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved