使用C++"type"表情符号

"type" emojis using C++

本文关键字:符号 type C++ 使用      更新时间:2023-10-16

我真的不知道我应该在标题中输入什么,但无论如何,这是我需要的:

我编写了一些小程序,比如"输入"给定的输入。下面是一个输入"test"的小示例(作为示例)。

#include <windows.h>
void Press(int Touch);
int main()
{
    Sleep(5000);//Sleep a bit, so that you can select where to type
    Press(VkKeyScan('t'));
    Press(VkKeyScan('e'));
    Press(VkKeyScan('s'));
    Press(VkKeyScan('t'));
    return 0;
}
void Press(int Touch)
{
    keybd_event(Touch, 0x9d, 0, 0);
    keybd_event(Touch, 0x9d, KEYEVENTF_KEYUP, 0);
}

所以我需要的不是这个,而是表情符号。我需要能够"键入"任何像这样的表情符号:" ",从我的程序。有什么想法吗?

有两种方法可以做到这一点。

第一个是使用"alt codes":

  • 按住ALT键
  • 按数字键盘上的+
  • 输入十六进制的Unicode码点
  • 释放ALT键

但是,这种方法需要在Windows注册表中设置EnableHexNumpad

第二个是使用Windows剪贴板。

  • 保存Windows剪贴板的内容
  • 将剪贴板内容设置为您希望插入的Unicode字符
  • 发送CTRL + V粘贴字符
  • 将剪贴板恢复到以前的内容

keybd_event已被弃用,正如其MSDN页面所述。通常当你查找一个Windows函数,发现它已经被弃用时,你真的应该考虑使用较新的。

使用SendInput,它支持unicode键盘输入仿真。

您可以通过在一行中打包两个不同的INPUT结构来发送非16位干净的unicode字符。