#include <windows.h>
HHOOK g_hKey;LRESULT CALLBACK KeyboardProc(
int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam // keystroke-message information
)
{
if(wParam==VK_F2)
{
keybd_event(0x48,MapVirtualKey(0x48,0),0,0);
keybd_event(0x48,MapVirtualKey(0x48,0),KEYEVENTF_KEYUP,0);
keybd_event(0x45,MapVirtualKey(0x45,0),0,0);
keybd_event(0x45,MapVirtualKey(0x45,0),KEYEVENTF_KEYUP,0);
keybd_event(0x4C,MapVirtualKey(0x4C,0),0,0);
keybd_event(0x4C,MapVirtualKey(0x4C,0),KEYEVENTF_KEYUP,0);
keybd_event(0x4C,MapVirtualKey(0x4C,0),0,0);
keybd_event(0x4C,MapVirtualKey(0x4C,0),KEYEVENTF_KEYUP,0);
keybd_event(0x4F,MapVirtualKey(0x4F,0),0,0);
keybd_event(0x4F,MapVirtualKey(0x4F,0),KEYEVENTF_KEYUP,0);
}
if(wParam==VK_F4)
{
UnhookWindowsHookEx(g_hKey);
} return CallNextHookEx(g_hKey,code,wParam,lParam);
}void Start()
{
g_hKey=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("Hook"),0);
}void Stop()
{
UnhookWindowsHookEx(g_hKey);
}问题1:为什么按f2键会连续输出两个hello
2:为什么按F4键后不卸载钩子,然后按F2还会继续输出
3:怎样才能在按F2后每隔一段时间输出hello
HHOOK g_hKey;LRESULT CALLBACK KeyboardProc(
int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam // keystroke-message information
)
{
if(wParam==VK_F2)
{
keybd_event(0x48,MapVirtualKey(0x48,0),0,0);
keybd_event(0x48,MapVirtualKey(0x48,0),KEYEVENTF_KEYUP,0);
keybd_event(0x45,MapVirtualKey(0x45,0),0,0);
keybd_event(0x45,MapVirtualKey(0x45,0),KEYEVENTF_KEYUP,0);
keybd_event(0x4C,MapVirtualKey(0x4C,0),0,0);
keybd_event(0x4C,MapVirtualKey(0x4C,0),KEYEVENTF_KEYUP,0);
keybd_event(0x4C,MapVirtualKey(0x4C,0),0,0);
keybd_event(0x4C,MapVirtualKey(0x4C,0),KEYEVENTF_KEYUP,0);
keybd_event(0x4F,MapVirtualKey(0x4F,0),0,0);
keybd_event(0x4F,MapVirtualKey(0x4F,0),KEYEVENTF_KEYUP,0);
}
if(wParam==VK_F4)
{
UnhookWindowsHookEx(g_hKey);
} return CallNextHookEx(g_hKey,code,wParam,lParam);
}void Start()
{
g_hKey=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("Hook"),0);
}void Stop()
{
UnhookWindowsHookEx(g_hKey);
}问题1:为什么按f2键会连续输出两个hello
2:为什么按F4键后不卸载钩子,然后按F2还会继续输出
3:怎样才能在按F2后每隔一段时间输出hello
解决方案 »
- mfc 问题
- 不论U盘拔插,OnDeviceChange的nEventType值总是7??
- Doc类头文件中定义结构体出错
- 星星就是比五个三角好看,散分庆祝升星星!
- 我使用字体对话框,GetLogFont(&logfont),logfont.lfHeight为负,如何转化为毫米?!
- 100分求助,请问用什么工具或者方法可以以二进制比特流的形式打开一个文件,然后查看组成该文件的二进制序列,谢谢您!
- 关于视频流的问题
- 高斯列主元消去法
- 如何在线程间利用管道传输数据?请指点!
- COM内部如何调用另一个MFC DLL
- error C2065: 'CCriticalSection' : undeclared identifier 在线等待
- 如何使用bcg
#pragma data_seg(".SHARED")
HHOOK g_hKey=NULL;
#pragma data_seg()
#pragma comment(linker, "/section:.SHARED,rws")
要每隔一段时间输出就弄个定时器吧,settimer
==================
按一次键会触发两次,一个是按下,一个是弹起
====================
这个你看一下它的返回值,看是不是成功了,不成功的话调用GetLastError看一下原因
#pragma data_seg(".SHARED")
HHOOK g_hKey=NULL;
#pragma data_seg()
#pragma comment(linker, "/section:.SHARED,rws") 解决了第二个问题,谢谢!!!我在看看其他地方