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键,你可以根据需要自己修改。