C++ 什么是C++;标题可以用于这些特定功能吗?Linux

C++ 什么是C++;标题可以用于这些特定功能吗?Linux,c++,linux-mint,simulate,C++,Linux Mint,Simulate,我是linux用户,希望使用这些“键盘事件”函数,但这些函数的标题是“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’

我是linux用户,希望使用这些“键盘事件”函数,但这些函数的标题是“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;
}
#包括
使用名称空间std;
int main(){
keybd_事件(VK_控件,0x9d,0,0);//按CTRL键
keybd_事件(VkKeyScan('R'),0x93,0,0);//按“R”
keybd_事件(VkKeyScan('R'),0x93,KEYEVENTF_KEYUP,0);//释放'R'
keybd_事件(VK_控件,0x9d,KEYEVENTF_KEYUP,0);/*释放CTRL*/
返回;
}
Linux中的
windows.h
没有“等价物”。您需要逐个修复错误,或者更好地为Linux重写代码


参考资料:

内核模块,正是为了这个目的而引入的。

我找到了一个解决方案,我只是在代码中键入:

system("xte 'keydown Control_L' 'key R' 'keyup Control_L'");
它也一样,但是必须包括

我不知道什么是“键盘事件”功能,但我想这会很有帮助:

#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;
}
#包括
#包含//用于getchar()
#包含//用于getch()
#包含//用于getch()
使用名称空间std;
int getch();
int main()
{
int ch=getch();

你不能在Linux上使用该函数。这些是Windows/WinAPI特定的库。那么我可以使用什么来模拟linxu的按键?这是一个XY问题;你在问如何实现你“发明”的解决方案。更好的问题是简单地问如何在Linux中注入键盘事件。