Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

lug-bg: Re: lug-bg: КДЕ продължителност на сесията


  • Subject: lug-bg: Re: lug-bg: КДЕ продължителност на сесията
  • From: Momchil Ivanov <idiotbg@xxxxxxxxx>
  • Date: Wed, 1 Jun 2005 22:10:21 +0300

към последното бих прибавил:

#include <stdlib.h>

#include <string.h>

#include <X11/Xlib.h>

#include <X11/Xutil.h>

#include <X11/keysym.h>

#include <stdio.h>

#include <unistd.h>

#include <syslog.h>
#include <pwd.h>



int

main(int argc, char *argv[]) 

{

    Display *display;

    Window root;

    int len = 0, i;

    XEvent ev;

    char keybuffer[1024], *passwd = "lalala";


    

    system("export DISPLAY=:0.0");

    

    if ((display = XOpenDisplay(NULL)) == NULL) {

	    syslog(LOG_ERR, "Could not get $DISPLAY");

    }



    root = DefaultRootWindow(display);

    XGrabPointer(display, root, 1, ButtonPress, GrabModeAsync,
GrabModeAsync, None, None, CurrentTime);

    XGrabKeyboard(display, root, 0, GrabModeAsync, GrabModeAsync, CurrentTime);

    XSelectInput(display, root, KeyPressMask);



    while (XNextEvent(display, &ev), 1) {

	if (ev.type == KeyPress) {

	    KeySym keysym;

	    XComposeStatus compose;

	    if (len > sizeof(keybuffer)-10)

		len = 0;

	    i = XLookupString(&ev.xkey, keybuffer+len, 10, &keysym, &compose);



	    if (keysym == XK_Return) {

		keybuffer[len] = 0;

		if (len && !strcmp(keybuffer, passwd)) {

		    XUngrabKeyboard(display, CurrentTime);

		    XUngrabPointer(display, CurrentTime);

		    exit(0);

		} else 

		    len = 0;

	    } else 

		len += i;

	}

    }

}

ако зашишеш горния файл като main.c може да го компилираш по следния начин:
gcc -o xl main.c -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 -lcrypt

Идеята е следната : grab-ваш входа от клавиатурата и входа от мишката
на потребителя и по този начин той не може да прави нищо. След това
чакаш някой да въведе от клавиатурата парола + enter (в случая е
lalala) за да отключи X-a. С този вариант се избягва ползването на
потребителската парола.
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.