C语言编程
这个需要用到windows的Hook编程,也就是钩子编程。如果你想在所有的程序下都使用shift替换ctrl,需要创
建一个全局的键盘钩子,使用全局钩子需要将钩子过程写在一个DLL文件中,也就是一个动态链接库中。下面是这个动态链接库内容:
#include <windows.h>
HHOOK g_hKeyboard;
HINSTANCE g_hInst;
BOOL WINAPI DllMain(
HINSTANCE hinstDll,
DWORD fdwReason,
LPVOID lpvReserved)
{
g_hInst=hinstDll;
return 1;
}
LRESULT CALLBACK KeyboardProc(int nCode,
WPARAM wParam,
LPARAM lParam)
{
if(nCode>=0)
{
if(nCode==0x41)
{
keybd_event(0x42,MapVirtualKey(0x42,0),0,0);
keybd_event(0x42,MapVirtualKey(0x42,0),KEYEVENTF_KEYUP,0);
return 1;
}
}
return CallNextHookEx(g_hKeyboard,nCode,wParam,lParam);
}
extern "C" __declspec(dllexport) void SetHook()
{
g_hKeyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,g_hInst,0);
}
编译好这个DLL,然后链接进下面的程序:
#include <stdio.h>
extern "C" __declspec(dllimport) void SetHook();
void main()
{
SetHook();
while(1)
{
}
}
这里是把键盘上的a键替换成了b键,你可以根据需要自己修改。