keybd_event输入字符问题

C语言 码拜 9年前 (2016-04-01) 1742次浏览
如题,想要输入键盘上的[ ] ; ” \ , { } |  : ” <>? 这些符号怎么得到,查了好多没有关于这些的组合与键值表 只有一些常见的0-9,A-Z的这些,前面提到的都没有啊,哪位高手指导,最好吧功能键F1下面的那排特殊符号的键值也给出来,谢谢,越详细越好,对了想输入中文怎么解!
解决方案

30

在MSDN里面搜“Key Scan Codes”

40

20

输入中文用SendInput方便点,SendInput是keybd_event的升级版。

#include <windows.h>
#include <iostream>
using namespace std;
void InputString(const wchar_t *str)
{
	int words_num = wcslen(str);
	KEYBDINPUT *keyinput = new KEYBDINPUT[words_num];
	memset(keyinput, 0, words_num * sizeof(KEYBDINPUT));
	for (int i = 0; i < words_num; i++)
	{
		keyinput[i].wScan = str[i];
		keyinput[i].dwFlags = KEYEVENTF_UNICODE;
	}
	INPUT *input = new INPUT[words_num];
	for (int i = 0; i < words_num; i++)
	{
		input[i].type = INPUT_KEYBOARD;
		input[i].ki = keyinput[i];
	}
	SendInput(words_num, input, sizeof(INPUT));
	delete[] input;
	delete[] keyinput;
}
void main()
{
	::Sleep(3000);
	InputString(L"你好,本人是小明");
}

30


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明keybd_event输入字符问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)