gpt4 book ai didi

c++ - Hook 键盘以更改键码

转载 作者:太空宇宙 更新时间:2023-11-04 14:17:41 26 4
gpt4 key购买 nike

我买了这个107 touch的键盘http://www.mobilitylab.eu/mini-design-touch-silver.html,我想要一个键盘放在我的左手上。但是当我们激活键盘的数字锁定时,它会激活键盘上的数字锁定。所以我们有 456- 而不是 uiop。我找到了这个程序,但它不能在 64 位操作系统上运行。 http://www.bellamyjc.org/fr/systeme.html#knumlock .

所以我想用 C++ 做我自己的程序,但它不能正常工作,钩子(Hook)没问题(WH_GETMESSAGE),但我不明白我们如何更改键码以及如何找到它是否是键键盘还是键盘?

这是我尝试更改消息的代码:

//-----------------Keyboard Hook Callback---------------//
Hookmsg_API LRESULT CALLBACK Hookmsg(int ncode,WPARAM wparam,LPARAM lparam){
//if(ncode>=0) //
if(ncode<0)
return CallNextHookEx(hook,ncode,wparam,lparam);
MSG *msg;
msg=(MSG *)lparam;
WORD newVK,oldVK;
WORD newSC,oldSC;

if(ncode==HC_ACTION)
{
if((msg->message == WM_KEYUP))//Check whether key was pressed(not released).)
{
oldVK=msg->wParam;
oldSC=SCANCODE(msg->lParam);
bool extendkey=false;
if(((HIWORD(msg->wParam) & 0x0100) == 0x0100))
{
extendkey=true;
}
if(!extendkey)
{
bool modif=true;
switch(oldVK)//wparam
{
case VK_INSERT: newVK=VK_NUMPAD0; break;
case VK_END: newVK=VK_NUMPAD1; break;
case VK_DOWN: newVK=VK_NUMPAD2; break;
case VK_NEXT: newVK=VK_NUMPAD3; break;
case VK_LEFT: newVK=VK_NUMPAD4; break;
case VK_CLEAR: newVK=VK_NUMPAD5; break;
case VK_RIGHT: newVK=VK_NUMPAD6; break;
case VK_HOME: newVK=VK_NUMPAD7; break;
case VK_UP: newVK=VK_NUMPAD8; break;
case VK_PRIOR: newVK=VK_NUMPAD9; break;
case VK_DELETE: newVK=VK_DECIMAL; break;
default: modif=false;
}
if(modif==true)
{

msg->wParam = VK_NUMPAD0;
UINT newSC=MapVirtualKey(VK_NUMPAD0,MAPVK_VK_TO_VSC);
msg->lParam &= 0xFF00;
msg->lParam += (newSC << 16 );
//MessageBox( NULL, TEXT("OK"), TEXT("Error!"), MB_OK);
}
}

}
}
return ( CallNextHookEx(hook,ncode,wparam,lparam) );//pass control to next hook in the hook chain.
}

最佳答案

无法理解你...
你有 2 个键盘吗?
如果是,请尝试使用原始输入(来自 USB HID 设备的原始数据)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms645543(v=vs.85).aspx

Lparam 和 wparam 对其他应用程序不可见。

关于c++ - Hook 键盘以更改键码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9942596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com