Я пытался отправить симуляцию с помощью XLib, мне удалось отправить несколько символов раньше.Но я потерпел неудачу, когда отправил смайлики.Что не так с моим кодом?И как я могу отправлять символы эмодзи так же, как я отправляю символы «А»?
Мне удалось отправить символы эмодзи, отправив «CTRL + Shift + U, затем Unicode, затем ENTER», но по определенным причинам яхочу отправить их напрямую так же, как я отправил символ «А» ниже.
Это мой фрагмент кода:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/keysym.h>
#include <X11/extensions/XTest.h>
...
...
...
...
int keySymPress (Display *display, KeySym sym)
{
KeyCode code = XKeysymToKeycode (display, sym);
if (!code)
return 1;
if (!XTestFakeKeyEvent(display, code, 1, 0))
return 2;
return 0;
}
int keySymRelease (Display *display, KeySym sym)
{
KeyCode code = XKeysymToKeycode (display, sym);
if (!code)
return 1;
if (!XTestFakeKeyEvent(display, code, 0, 0))
return 2;
return 0;
}
...
...
...
Это мой код для отправки символа «А»":
...
...
int main (void)
{
Display *display = XOpenDisplay (NULL);
...
...
...
//keySymPress (display, XK_A);
keySymPress (display, 0x0041); // U+0041 LATIN CAPITAL LETTER A
...
...
...
Это мой код, который не смог отправить символ" ? "
...
...
int main (void)
{
Display *display = XOpenDisplay (NULL);
...
...
...
keySymPress (display, 0x001f603); // U+1f603 Grinning face with big eyes (?)
...
...
...
Я ожидаю, что символы эмодзи будут выглядеть так же, как и я с символом" А "