Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Yuriy Kaminskiy                      2:5020/517.21  24 Feb 2001  21:19:08
 To : Max Ischenko
 Subject : Re: Window manager with vim-like scripting 8-)
 -------------------------------------------------------------------------------- 
 
 .RFC-Content-Transfer-Encoding: 7bit
 .RFC-NNTP-Posting-Date: 24 Feb 2001 17:19:10 GMT
 .RFC-X-PGP-Key-Fingerprint: 43 6F DC 3B 23 1D CB 8E  31 64 C0 EF 78 A1 2A 0C
 .RFC-X-GPG-Key-Fingerprint: C2B8 59EA 497A D6F6 2640  0E49 D84A AADA EACE AFFF
 --Multipart_Sat_Feb_24_20:19:08_2001-1
 Content-Type: text/plain; charset=KOI8-R
 
  Hello,  Max! 
 
 >>>>> On 11:16 23/2/2001, max@malva.com.ua writes:
  YK> безопасности; хотя при применении xauth это не так страшно].
  MI> А можно кусок кода на  tcl/python/C с использованием XSendEvent?
  MI> А то я в Xlib не силен.
 
  Hу вот, на коленке сбацал; работает, однако:
 
 --Multipart_Sat_Feb_24_20:19:08_2001-1
 Content-Type: application/octet-stream
 Content-Disposition: attachment; filename="xsendevent.c"
 Content-Transfer-Encoding: 8bit
 
 /*
  * compile & link: gcc -pipe -O2 -o xsendevent{,.c} -L /usr/X11R6/lib -lX11
  * run: ./xsendevent "$WINDOWID" 1 2 3 4 Left
  * # sends keys 1, 2, 3, 4 and Left to window $WINDOWID
  */
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #include <string.h>
 int main(int argc, char *argv[])
 {
   Display *dpy;
   Window window;
   char *prog;
   char *s;
   int i;
   if ((prog=strrchr(argv[0],'/'))==NULL)
       prog=argv[0];
   else
       prog++;
   if (argc < 2) {
     printf("Usage: %s windowid\n", prog);
     return 1;
   }
   dpy = XOpenDisplay(NULL);
   if (dpy == NULL) {
     fprintf(stderr,"%s: Cannot open display\n",prog);
     return 1;
   }
   window = (Window)strtol(argv[1], &s, 0);
   if(*s) {
       fprintf(stderr, "%s: bad windowid: `%s'\n%*c\n",
         prog,argv[1],strlen(prog)+17+1+(s-argv[1]),'^');
       XCloseDisplay(dpy);
       return 1;
   }
 
   for(i = 2; i < argc; i++) {
       XEvent ev;
       KeySym key;
       ev.xkey.type = KeyPress;
       ev.xkey.window = window;
       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(dpy,key);
       ev.xkey.same_screen = True;
       XSendEvent(dpy, window, True, KeyPressMask, &ev);
       ev.type = KeyRelease;
       XSendEvent(dpy, window, True, KeyReleaseMask, &ev);
   }
   XCloseDisplay(dpy);
   return 0;
 }
 /* vim: aw
  */
 
 --Multipart_Sat_Feb_24_20:19:08_2001-1
 Content-Type: text/plain; charset=US-ASCII
 -- 
 Yuriy Kaminskiy.
 
 --Multipart_Sat_Feb_24_20:19:08_2001-1--
 --- Gnus v5.2.25/XEmacs 19.14
  * Origin: Kyle Katan's station (2:5020/517.21@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Window manager with vim-like scripting 8-)   Yuriy Kaminskiy   24 Feb 2001 21:19:08 
Архивное /ru.linux/17427929042bc.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional