Wie Sie ein einfaches C-Programm erstellen, das Tastaturtastentreffer erzeugt.Produzieren Tastatur Ereignistaste Treffer
if (condition) {
KeyPress('A');
}
Ich arbeite auf Ubuntu 8.10 Linux OS
Wie Sie ein einfaches C-Programm erstellen, das Tastaturtastentreffer erzeugt.Produzieren Tastatur Ereignistaste Treffer
if (condition) {
KeyPress('A');
}
Ich arbeite auf Ubuntu 8.10 Linux OS
Get Gefälschte Wichtige Ereignisse von 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;
}
Es gibt XTestFakeKeyEvent()
Funktion von Xlib.
einen Blick auf xsendkey nehmen. Die Quellen sind enthalten und kurz, so dass Sie die benötigten Teile daraus in Ihr Programm extrahieren.
Vielleicht nicht, was das OP will, aber ich fand es nützlich; Vielen Dank. –
Werfen Sie einen Blick auf Swinput.
Swinput fälschen kann eine Maus und eine Tastatur durch den Input Linux mit -System. Die Swinput-Module lesen von ein Gerät und fälschen Hardware-Ereignis (Mausbewegung, Tasten drücken usw.) als Befehle auf den Geräten geschrieben.
Danke! Es scheint, dass Swinput mit Kernel-Space arbeitet. Ich suche nach einer User-Space-Anwendung – Madni
Obwohl dies nicht C ist, können Sie Schlüssel Treffer in Java erzeugen kann sehr einfach:
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();
}
}
};
Hier ist ein einfaches Beispiel libxdo mit (von xdotool). (Vorab: Ich bin der xdotool Autor)
/* 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;
}
Es scheint, 'xdo_keysequence' wurde umbenannt in' xdo_send_keysequence_window'; in Ubuntu 14.04 mindestens. Übrigens, soll ich 'xdo_free' danach anrufen? libxdo ist übrigens sehr nett, ich würde ein einseitiges Tutorial dafür vorschlagen - ich brauchte eine Stunde, um hierher zu kommen; Beim Durchforsten von xdotool-Code hatte ich keine Ahnung, dass ich ohne einen "Kontext" davonkommen könnte. – user2023370
gibt es eine andere Art und Weise X11 NICHT – Madni
gehen mit für Erwarten Sie ist eine für i für gleiche Operation bin mit – joe
Dank! Wirst du mir bitte erklären, wie man Expect benutzt, da es wirklich neu für mich ist. Grüße. – Madni