'X11'에 해당되는 글 1건
- 2007.02.26 X!!- key_grab 2
X!!- key_grab
Programming 2007. 2. 26. 00:49
X-윈도우에서 전역단축키 사용하는 방법..
#include \
#include
#include
#include
#include
int main(int argc, char *argv[])
{
Display *d;
Window x11_win;
KeyCode get_key= 0; //init?
KeySym key_code;
XEvent key_press;
if (argc < 3) {
fprintf(stderr,"Useage\nEX>: %s Alt_L \"/bin/bash\"\n", argv[0]);
exit(1);
}
d = XOpenDisplay(""); //x_display(screen) 생성
x11_win = DefaultRootWindow(d); //ID를 윈도에 돌려줌
//이거 실패했을때 가정해서 플그래밍 하래
key_code = XStringToKeysym(argv[1]); //key를 받아(xev value)
get_key = XKeysymToKeycode(d, key_code); //key_code 값으로 변환
XGrabKey(d, get_key, AnyModifier, x11_win,
True, GrabModeAsync, GrabModeAsync); //key_grab
while (1) { //키가 눌릴때까지 loop,winapi의 그것과 비슷한듯
XNextEvent(d, &key_press);
switch(key_press.type) {
case KeyRelease:
system(argv[2]); //run!
break;
default:
break;
}
}
XCloseDisplay(d);
}
구글링 해서 찾은 소스 좀 고침.-
#include \
#include
#include
#include
#include
int main(int argc, char *argv[])
{
Display *d;
Window x11_win;
KeyCode get_key= 0; //init?
KeySym key_code;
XEvent key_press;
if (argc < 3) {
fprintf(stderr,"Useage\nEX>: %s Alt_L \"/bin/bash\"\n", argv[0]);
exit(1);
}
d = XOpenDisplay(""); //x_display(screen) 생성
x11_win = DefaultRootWindow(d); //ID를 윈도에 돌려줌
//이거 실패했을때 가정해서 플그래밍 하래
key_code = XStringToKeysym(argv[1]); //key를 받아(xev value)
get_key = XKeysymToKeycode(d, key_code); //key_code 값으로 변환
XGrabKey(d, get_key, AnyModifier, x11_win,
True, GrabModeAsync, GrabModeAsync); //key_grab
while (1) { //키가 눌릴때까지 loop,winapi의 그것과 비슷한듯
XNextEvent(d, &key_press);
switch(key_press.type) {
case KeyRelease:
system(argv[2]); //run!
break;
default:
break;
}
}
XCloseDisplay(d);
}
구글링 해서 찾은 소스 좀 고침.-
'Programming' 카테고리의 다른 글
쉘스크립트 하는데 (7) | 2008.02.04 |
---|---|
간만에 포스팅.. 소스 고치기! (2) | 2007.10.17 |
Nanika를 써보고 나는 생각들 (5) | 2007.06.16 |
c로 cp 프로그램 작성 (5) | 2006.05.14 |
getchar 의 리턴형은.. (4) | 2006.04.02 |