linuxmint — Какой заголовок C ++ я могу использовать для этих конкретных функций? Linux

Я — пользователь Linux и хотел бы использовать эти функции keyboard_event, но заголовок для этих функций — «windows.h», и у linux нет никакого «windows.h», поэтому любой может поддержать какой-нибудь альтернативный заголовок для этих функций. , или альтернативный способ имитировать нажатие клавиш для Linux?

#include <iostream>
using namespace std;

int main() {

keybd_event(VK_CONTROL,0x9d,0 , 0); //pressing CTRL
keybd_event(VkKeyScan(‘R’),0x93,0 , 0); //pressing 'R'
keybd_event(VkKeyScan(‘R’),0x93,KEYEVENTF_KEYUP,0); //releasing 'R'
keybd_event(VK_CONTROL,0x9d,KEYEVENTF_KEYUP,0); /* releasing CTRL */return;
}

3

Решение

Там нет «эквивалент» для windows.h в линуксе Вам нужно исправлять ошибки в каждом конкретном случае или, лучше, переписать свой код для Linux.

Ссылка: https://ubuntuforums.org/showthread.php?t=533304

0

Другие решения

uinput модуль ядра и libevdev были введены именно для этой цели.

0

Я нашел решение, в коде я просто введите:

system("xte 'keydown Control_L' 'key R' 'keyup Control_L'");

и делает то же самое, но <cstdlib> должен быть включен.

0

Я не знаю, каковы функции «keyboard_event», но я думаю, это было бы полезно:

#include <iostream>
#include <cstdio> // for getchar()
#include <unistd.h> // for getch()
#include <termios.h> // for getch()

using namespace std;

int getch();
int main()
{
int ch = getch();
cout << ch << endl;
}

int getch()
{
struct termios oldt, newt;
int ch;
tcgetattr(STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
ch = getchar();
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
return ch;
}
0
По вопросам рекламы [email protected]