Ich habe diese Tastatur http://www.mobilitylab.eu/mini-design-touch-silver.html 107 Touch, kaufen, und ich möchte eine Tastatur, um es auf meiner linken Hand. , aber wenn wir den Numlock des Keypads aktivieren, aktiviert er den Numlock auf der Tastatur. Also haben wir 456- statt Uiop. Ich habe dieses Programm gefunden, aber es funktioniert nicht auf einem 64-Bit-Betriebssystem. http://www.bellamyjc.org/fr/systeme.html#knumlock.Haken Tastatur zum Ändern des Tastencodes
Also ich möchte mein eigenes Programm mit C++ machen, aber es funktioniert nicht gut, der Haken ist in Ordnung (WH_GETMESSAGE), aber ich verstehe nicht, wie wir den Schlüsselcode ändern können und wie wir finden können, wenn es ein ist Taste der Tastatur oder der Tastatur?
Hier dies ist mein Code, wo ich versuche, um die Nachricht zu ändern:
//-----------------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.
}