Sponsored Content
Top Forums Programming X11: convert a string into keysym Post 302590677 by martina on Tuesday 17th of January 2012 06:35:38 AM
Old 01-17-2012
X11: convert a string into keysym

Dear all,
i need to send fake key events to my application, where the keysym to send is readen from a config file and saved to a vector<string>.
I use:
Code:
 
[...]
#include <X11/Xlib.h>  
#include <X11/Intrinsic.h>  
#include <X11/extensions/XTest.h>  
#include <unistd.h>  

//the below function from "http://bharathi.posterous.com/x11-fake-key-event-generation-using-xtest-ext"

static void sendKBEvent (Display * display, KeySym keysym, KeySym modsym)
{
  KeyCode keycode = 0, modcode = 0;
  
  keycode = XKeysymToKeycode (display, keysym);
  
  if (keycode == 0) return;

  XTestGrabControl (display, True);

  /* Generate modkey press */
  if (modsym != 0)
  {
     modcode = XKeysymToKeycode(display, modsym);
     XTestFakeKeyEvent (display, modcode, True, 0);
  }

  /* Generate regular key press and release */
  XTestFakeKeyEvent (display, keycode, True, 0);
  XTestFakeKeyEvent (display, keycode, False, 0);

  /* Generate modkey release */
  if (modsym != 0)
    XTestFakeKeyEvent (display, modcode, False, 0);

  XSync (display, False);
  XTestGrabControl (display, False);
}


int main(int argc, char** argv)
{
   [...]
   vector<string> kbdEventsVect;

   ConfigFile configFile;
    
   kbdEventsVect = configFile.parseFile("file.txt");
   
   /*kbdEventsVect[] contains XK_Up, XK_Down, XK_Escape, XK_Right*/

   [...]
   sendKBEvent(display, kbdEventsVect[0], 0);
  [...]
 }

the problem is that the compiler does not like me passing a string ( kbdEventsVect[0]) to
sendKBEvent(), which instread needs a Keysym var as 2 argument.

Code:
error: cannot convert ‘std::basic_string<char,   std::char_traits<char>, std::allocator<char> >' to   ‘KeySym' for argument ‘2' to ‘void sendKBEvent(Display*, KeySym,   KeySym)'

The wired thing is that if I pass directly the string, everything works fine

Code:
   sendKBEvent(display, XK_F11, 0);

but If I use &kbdEventsVect[0] == XK_F11

Code:
sendKBEvent(display, kbdEventsVect[0], 0);

I guess i'm missing something...

Thank you for any help you would give me.

Martina
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert string to numeric

Hi, I have read some figures from a text file by getting the position and wish to do some checking, but it seem like it won't work. eg. my figure is 0.68 it still go the the else statement, it seems like it treat it as a text instead of number. Anybody can Help ? Thanks. # only... (3 Replies)
Discussion started by: kflee2000
3 Replies

2. Shell Programming and Scripting

how to convert a string to int

Hi, i want to read a text file whose content(single line) will be a number like 1 or 2 or 3 ..... what i want to do is to read the file and increment the content of the file, using unix scripting. Regards, Senthil Kumar Siddhan. (2 Replies)
Discussion started by: senthilk615
2 Replies

3. Windows & DOS: Issues & Discussions

cygwin-x/can't install xorg-x11-f100 & xorg-x11-fnts

Hello All. Really a newbie to Linux/Unix. Trying to get into Linux. Using XP PE currently. Installed cygwin and trying to intall cygwin-x. Everything else is setup nice but i can't seem to install these two packages (without whom xwin won't start) 1. xorg-x11-f100 2. xorg-x11-fnts Tried the... (1 Reply)
Discussion started by: binodbdrchand
1 Replies

4. Shell Programming and Scripting

how to convert array into the string

Hi I have a line/string as follows: A=" 3498 NORDEA - INDX LINKED NORY" which was converted into an array of characters: p321$ echo "${ARR}" 3 4 9 8 N O R D E A - I N D X L I N K E D N O R Y When I am trying print this array there are blank... (4 Replies)
Discussion started by: aoussenko
4 Replies

5. Shell Programming and Scripting

Help with convert string

Hi. I will be very appreciated for help. I need replace all characters into string with \ (backslash) I mean if I have word abcdefg as input. How I can convert it to \a\b\c\d\e\f\g Thanks and best regards. Staas. (5 Replies)
Discussion started by: beckss
5 Replies

6. UNIX for Advanced & Expert Users

[Solved] putty+x11:How do I pass X11 display rights to "su"?

I can log into a unix system with Putty. I've set the "X11 forwarding" checkbox, and I've verified that I can display an X11 window back on my laptop. What I need to be able to do is "su" to another uid after logging in and then run something which display a window back on my laptop, with the... (2 Replies)
Discussion started by: dkarr
2 Replies

7. Shell Programming and Scripting

Convert string using sed

I have a couple structure definitions in my input code. For example: struct node { int val; struct node *next; }; or typedef struct { int numer; int denom; } Rational; I used the following line to convert them into one line and copy it twice. sed '/struct*{/{:l... (3 Replies)
Discussion started by: James Denton
3 Replies

8. Shell Programming and Scripting

Search several string and convert into a single line for each search string using awk command AIX?.

I need to search the file using strings "Request Type" , " Request Method" , "Response Type" and by using result set find the xml tags and convert into a single line?. below are the scenarios. Cat test Nov 10, 2012 5:17:53 AM INFO: Request Type Line 1.... (5 Replies)
Discussion started by: laknar
5 Replies

9. Shell Programming and Scripting

Convert a String to a Number

I read in two numbers from a user but the number is a string. #!/bin/bash read -p "Enter first number: " num1 read -p "Enter second number: " num2 I know you can use the the "expr" or "bc" command to automatically convert the string to a number then add them together. But I don't want to add... (10 Replies)
Discussion started by: Loc
10 Replies
IsCursorKey(3X11)						  XLIB FUNCTIONS						 IsCursorKey(3X11)

NAME
IsCursorKey, IsFunctionKey, IsKeypadKey, IsMiscFunctionKey, IsModiferKey, IsPFKey, IsPrivateKeypadKey - keysym classification macros SYNTAX
IsCursorKey(keysym) IsFunctionKey(keysym) IsKeypadKey(keysym) IsMiscFunctionKey(keysym) IsModifierKey(keysym) IsPFKey(keysym) IsPrivateKeypadKey(keysym) ARGUMENTS
keysym Specifies the KeySym that is to be tested. DESCRIPTION
The IsCursorKey macro returns True if the specified KeySym is a cursor key. The IsFunctionKey macro returns True if the KeySym is a function key. The IsKeypadKey macro returns True if the specified KeySym is a keypad key. The IsMiscFunctionKey macro returns True if the specified KeySym is a miscellaneous function key. The IsModiferKey macro returns True if the specified KeySym is a modifier key. The IsPFKey macro returns True if the specified KeySym is a PF key. The IsPrivateKeypadKey macro returns True if the specified KeySym is a vendor-private keypad key. SEE ALSO
AllPlanes(3X11), BlackPixelOfScreen(3X11), ImageByteOrder(3X11) Xlib - C Language X Interface X Version 11 Release 6.6 IsCursorKey(3X11)
All times are GMT -4. The time now is 02:59 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy