产生键盘事件键击中

如何制作一个简单的C程序来制作键盘按键。

if ( condition ) { KeyPress('A'); } 

我正在使用Ubuntu 8.10 Linux操作系统

Solutions Collecting From Web of "产生键盘事件键击中"

这是一个简单的例子,使用libxdo(来自xdotool)。 (注意:我是xdotool作者)

  /* File: testkey.c * * Compile with: * gcc -lxdo testkey.c * * Requires libxdo (from xdotool project) */ #include <xdo.h> int main() { xdo_t *xdo = xdo_new(NULL); xdo_keysequence(xdo, CURRENTWINDOW, "A", 0); return 0; } 

Xlib中有XTestFakeKeyEvent ()函数。

您可以使用Expect for c或C ++程序

看看xsendkey 。 来源包括在内,并且很短,所以您从中提取必要的部分到您的程序中。

虽然这不是C,但您可以非常轻松地在Java中创建关键点击:

 import java.awt.Robot; import java.awt.AWTException; import java.awt.event.KeyEvent; public class key { public static void main(String args[]) { try { Robot r = new Robot(); r.delay(2000); r.keyPress(KeyEvent.VK_W); } catch (AWTException e) { e.printStackTrace(); } } }; 

看看Swinput 。

Swinput可以通过使用Linux输入系统来伪造鼠标和键盘。 swinput模块从设备读取并伪造设备上写入的命令的硬件事件(鼠标移动,按键等)。

通过Xdotool获取假钥匙事件

 //Compile As: gcc button.c -lX11 #include < X11/Xlib.h > #include < X11/Xutil.h > #include < stdio.h > #include < X11/extensions/XTest.h > void press_button() { Display *d; d = XOpenDisplay(NULL); if(d == NULL) { //fprintf(stderr, "Errore nell'apertura del Display !!!\n"); //exit(0); } system("xdotool key Shift+a"); XFlush(d); XCloseDisplay(d); } int main() { press_button(); return 0; }