VCMFC如何实现后台捕捉键盘消息

VCMFC如何实现后台捕捉键盘消息,第1张

// 用全局键盘钩子。要写一个DLL库。代码如下:

#include <windowsh>

#pragma data_seg("HookData")

HHOOK g_hHook = NULL;

HINSTANCE g_hInstDLL = NULL;

#pragma data_seg()

#pragma comment(linker,"/SECTION:HookData,RWS")

BOOL APIENTRY DllMain(HINSTANCE hInstDLL

DWORD fdwReason,

LPVOID lpvReserved)

{

g_hInstDLL = hInstDLL;

return TRUE;

}

// 回调函数

LRESULT WINAPI HookProc(int nCode, WPARAM wParam, LPARAM lParam)

{

// 请在这里添加消息处理代码

// 将事件传递到下一个钩子

return CallNextHookEx(g_hHook, nCode, wParam, lParam);

}

// 安装钩子

extern "C" __declspec(dllexport) VOID InstallHook()

{

g_hHook = SetWindowsHookEx(WH_KEYBOARD, HookProc, _hInstDLL, 0);

}

// 卸载钩子

extern "C" __declspec(dllexport) DWORD KillHook(void)

{

UnhookWindowsHookEx(g_hHook);

}

/ Copyrights (C) 2010 夺魂狼剑 All rights reserved /

可以在程序中使用LoadLibrary()函数来动态加载这个DLL库,并用GetProcAddress()来找到DLL中的导出函数。

希望能对你有所帮助。

--------------------------------------------------------------------------------------------

HookProc是回调函数,每当捕获到键盘消息,就被自动调用,消息参数wParam是对应的虚拟键代码,可以把它强制转换为ASCII字符,lParam可以判断Ctrl、Alt、Shift等控制键。

每当键盘被按下,就会产生一个WM_KEYDOWN消息,如果被按下的是字母键,还会产生WM_CHAR消息。释放键盘,会产生WM_KEYUP消息。你可以根据实际需要进行捕获。

turboc 开发的是dos实模式下的应用程序

而vc开发环境不能开发dos实模式下的程序,所以不能调用bioskey函数,bioskey是通过调用软中断来读取键盘的。

vc只能开发 控制台应用程序,虽然运起来很像dos程序 而实际上不是的,这种程序不能在真正的dos底下运行。

以上就是关于VC/MFC如何实现后台捕捉键盘消息全部的内容,包括:VC/MFC如何实现后台捕捉键盘消息、turbo C下的bioskey读取键盘键值函数在VC开发环境下如何用C语言实现、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9276362.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存