Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用c++;(keybd_事件)_C++_C_Winapi_Sendkeys - Fatal编程技术网

C++ 如何使用c++;(keybd_事件)

C++ 如何使用c++;(keybd_事件),c++,c,winapi,sendkeys,C++,C,Winapi,Sendkeys,我的朋友正在学习挪威语,我想制作一个全球热键程序,它可以发送诸如 æ ø å 我的问题是keybd_事件函数不允许我发送这些密钥,我似乎被限制在以下问题上:我是否可以使用其他函数或发送密钥的技巧?您必须使用SendInput。keybd_事件不支持发送此类字符(除非它们已在当前代码页中,如在挪威计算机上)。发送å的一段示例代码: KEYBDINPUT kb={0}; INPUT Input={0}; // down kb.wScan = 0x00c5; kb.dwFlags = KEYEVE

我的朋友正在学习挪威语,我想制作一个全球热键程序,它可以发送诸如

æ
ø
å

我的问题是keybd_事件函数不允许我发送这些密钥,我似乎被限制在以下问题上:我是否可以使用其他函数或发送密钥的技巧?

您必须使用SendInput。keybd_事件不支持发送此类字符(除非它们已在当前代码页中,如在挪威计算机上)。发送å的一段示例代码:

KEYBDINPUT kb={0};
INPUT Input={0};

// down
kb.wScan = 0x00c5;
kb.dwFlags = KEYEVENTF_UNICODE;
Input.type = INPUT_KEYBOARD;
Input.ki = kb;
::SendInput(1,&Input,sizeof(Input));

// up
kb.wScan = 0x00c5;
kb.dwFlags = KEYEVENTF_UNICODE|KEYEVENTF_KEYUP;
Input.type = INPUT_KEYBOARD;
Input.ki = kb;
::SendInput(1,&Input,sizeof(Input));
如果您不知道:在Windows上安装其他键盘布局并使用快捷方式在它们之间切换很容易


莱克泰尔

谢谢!很好地工作,我以前试过一次这种方法,但我把wScan设为“æ”,结果不起作用。。。我以为它会为我把它转换成十六进制:P再次感谢!啊,注意到如果你说wScan=_T(‘æ’);或“æ”;这也行,只是不需要找出它的十六进制代码。