Ich weiß nicht warum die Mail erst heute durch kam. Ich hatte die glaube
ich gestern oder vorgestern geschrieben.
Die Lösung ist:
#include <stdio.h>
#include <stdlib.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <string.h>
int main (int argc, char *argv[]) {
Display *display;
Window focus_return;
int revert_to_return;
int i;
if (argc<3) {
printf("usage: ./sendkey key1 key2 key3 etc.\n\n");
return(1);
}
if ((display = XOpenDisplay(NULL)) == NULL)
{
printf("Unable to open display\n");
return 1;
}
XGetInputFocus(display, &focus_return,&revert_to_return);
for (i=3; i<argc; ++i) {
XEvent ev;
KeySym key;
ev.xkey.type=KeyPress;
ev.xkey.window=focus_return;
ev.xkey.root=ev.xkey.subwindow=None;
ev.xkey.time=0;
ev.xkey.x=ev.xkey.y=ev.xkey.x_root=ev.xkey.y_root=0;
ev.xkey.state=0;
key=XStringToKeysym(argv[i]);
ev.xkey.keycode=XKeysymToKeycode(display, key);
ev.xkey.same_screen=True;
XSendEvent(display, focus_return, True, KeyPressMask, &ev);
ev.type=KeyRelease;
XSendEvent(display, focus_return, True, KeyReleaseMask, &ev);
}
XCloseDisplay(display);
return(0);
}
MfG
Bernhard
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org