我想知道用C语言怎么写一个控制键盘输入的程序,比如让键盘自动执行ctrl或shift功能等.请哪位高手帮帮忙

2024-12-01 01:36:26
推荐回答(2个)
回答(1):

可以用普通的C语言来写。调用User32.lib
的函数:
void keybd_event(BYTE bVirturalKey,BYTE bScanCode,
DWORD dwFlags,DWORD dwExtraInfo)
ctrl 键是 VK_CONTROL bScanCode = 0x9d
shift键是 VK_SHIFT 0xaa
揿键是 0,0
键弹上来是:KEYEVENTF_KEYUP,0

例如simu_keyboard.c程序,模拟 Alt-PrintScreen,把屏幕图像放入剪切板。

头文件:
#include
#include
#include
#include

/* ----------------------------------
simulation of Alt-PrintScreen
to get current Window image in clipboard
* -----------------------------------*/
void snapwin_2_clipboard()
{
keybd_event(VK_LMENU,0xA4,0,0); // 揿 Alt
keybd_event(VK_SNAPSHOT,0x2C,0,0); // 揿 PrintScreen
keybd_event(VK_SNAPSHOT,0x2C,KEYEVENTF_KEYUP,0); // 键弹上
keybd_event(VK_LMENU,0xA4,KEYEVENTF_KEYUP,0); // 键弹上
}

void main()
{
(void) snapwin_2_clipboard();
exit(0);
}

编译命令: cl simu_keyboard.c user32.lib
运行:simu_keyboard.exe
用任何图像编辑软件中的Edit-paste 可贴剪切板里的内容了。

回答(2):

要调用Win32API,
名字是:keybd_event Function
他可以控制键盘的行为,状态。
原型:
VOID keybd_event
(
BYTE bVk,
BYTE bScan,
DWORD dwFlags,
PTR dwExtraInfo
);
参考一下MSDN吧,里面的文档说得很清楚了。