Я — пользователь 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;
}
Там нет «эквивалент» для windows.h
в линуксе Вам нужно исправлять ошибки в каждом конкретном случае или, лучше, переписать свой код для Linux.
Я нашел решение, в коде я просто введите:
system("xte 'keydown Control_L' 'key R' 'keyup Control_L'");
и делает то же самое, но <cstdlib>
должен быть включен.
Я не знаю, каковы функции «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;
}