问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

想用c语言写一个全局键盘钩子的程序,成功后送100分!

发布网友 发布时间:2022-04-22 14:20

我来回答

1个回答

热心网友 时间:2023-09-07 01:33

全局键盘钩子是需要放到dll中去实现的

我估计你还不会写什么是dll

但有好消息告诉你

日志钩子可以做到在一个程序中实现全局键盘捕获:

VC代码:
#include<windows.h>

HHOOK LogHook=NULL;
LRESULT CALLBACK LogProc(int code,WPARAM wParam,LPARAM lParam)
{
EVENTMSG *pEventMsg=(EVENTMSG*)lParam;

if(code==HC_ACTION)
{
switch(pEventMsg->message)
{
case (WM_KEYDOWN):
BYTE bKeyState[256];
unsigned short uAscii[4];
UINT uScanCode;
int iRet;
GetKeyboardState(bKeyState);
bKeyState[VK_SHIFT]=GetKeyState(VK_SHIFT);
uScanCode=(pEventMsg->paramH>>16);
iRet=ToAscii(pEventMsg->paramL,uScanCode,bKeyState,uAscii,0);
switch(iRet)
{
case 0:
break;
case 1:

if((char)uAscii[0]=='t' || (char)uAscii[0]=='T')//t键按下
{
MessageBox(NULL,"按下了T","按键提示",MB_OK);
/**************自己实现播放音乐的功能*****************/
}
else if((char)uAscii[0]=='y' || (char)uAscii[0]=='Y')//Y键按下
{

MessageBox(NULL,"按下了Y","按键提示",MB_OK);
/***************自己在这里实现停止播放音乐的功能****************/

}
break;
default:
break;
}
default:
break;
}
}
return CallNextHookEx(LogHook,code,wParam,lParam);
}
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
LogHook=SetWindowsHookEx(WH_JOURNALRECORD,LogProc,hInstance,NULL);
while(1)Sleep(100);
return 0;
}

日志钩子工作不稳定的。追问有一个错误啊...
Compiling...
Error spawning cl.exe

追答win32工程

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有要业余时间弹古筝的酒店么 古筝演奏师的就业前景怎么样 茶馆里主要放的音乐类型是 日语一级的话什么水平啊 一级到底要求多少词汇啊? WPS右键菜单(win11) 再生缘 我的温柔暴君结局是什么啊?女主最后傻了? 为什么做爱多了没感情了 情侣之间在一起时间长了是不是做爱的时候也懒得接吻了直接进入主题吗... 夫妻性爱后为何丧失了热情 101胶水的关于命名 C#全局键盘钩子问题 302和502这类胶水命名的依据是什么 给胶水取名 502名字来历 502胶 为何如此命名? 海康一个报警主机可以舍两个全局键盘吗 为什么把502胶命名为“502”? 502 胶水和 101 胶水是如何命名的,他们的区别在哪里? 胶水命名的问题!怎么定义的,比如502 503 502为什么叫502 胶水为啥用数字叫502,不叫520? 地道家常菜清蒸鱼,怎样做才能好看又好吃? 在家做清蒸鱼时,怎样才能做出餐厅的味道? 说一说在家做清蒸鱼时,都有哪些技巧? 清蒸鱼怎么做大火还是小火蒸呀,蒸多长时 清蒸鱼一般用大火煮10分钟还是小火 按键怎么使用 制作清蒸鲈鱼时,应该用大火吗? 清蒸鱼怎么做大火还是小火蒸呀,蒸多长时间 502胶水的命名? 胶水种类有哪些胶水种类介绍 请教,全局键盘钩子 如何获取其他进程的 键盘输入 成结标记是什么意思? 胶水为什么叫502 想用VC++做个全局键盘改键,键盘钩子代码,详细怎么做。跪求代码。 abo设定中有几种标记法? 502胶水的502有什么含义为什么这么叫 Delphi 全局键盘钩子的功能问题 writeas标记成结是什么? 做胶水的,微信名应该取名叫什么好? VB全局键盘钩子代码 ABO里成结是什么意思?是标记吗?需要什么条件? 502胶水和101胶水有什么区别 全局键盘钩子 生殖腔和成结是什么? 易语言全局按键(非注册热键,或者监视热键) alpha怎么标记omega? 404 Not Found 如果omega怀孕了,是不是代表已经被标记了,求解求解