kurm_de
12-12-2006, 11:45
Hi,
ich beschäftige mich zur Zeit mit der XLib unter DSL (DammSmallLinux), dazu habe ich angefangen mir von der Seite www.pronix.de
das OpenBook "Linux-Unix-Programmierung" (Kapitel 13) durchzulesen.
Nun bin ich soweit das ich ein Fenster erstellen kann und das in dem Fenster ein Text erscheint.
Mein Code sieht dann so aus:
/* hallo.c */
#include <stdio.h>
#include <stdlib.h>
#include <X11/keysym.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
static int create_window (void);
/* Globale Variablen */
static Display *display;
static int screen;
static int depth;
static Window win;
/* Funktion erzeugt ein Fenster */
static int create_window (void) {
char *window_name = "Einfaches Fenster - hallo";
char *icon_name = "window";
static XSizeHints size_hints;
Window rootwin;
/* X-Sitzung oeffnen */
display = XOpenDisplay (NULL);
/* Standardbildschirm eines Displays */
screen = XDefaultScreen (display);
rootwin = RootWindow (display, screen);
win = XCreateSimpleWindow ( display, rootwin, 1, 1, 500, 500, 5,
BlackPixel (display, screen),WhitePixel (display, screen) );
size_hints.flags = PSize | PMinSize | PMaxSize;
size_hints.min_width = 500;
size_hints.max_width = 500;
size_hints.min_height = 500;
size_hints.max_height = 500;
XSetStandardProperties ( display, win, window_name, icon_name, None, 0, 0, &size_hints );
/* Fenster anzeigen */
XMapWindow (display, win);
return 1;
}
int main (int argc, char **argv) {
Font font;
GC mygc;
create_window ();
mygc = XCreateGC (display, win , 0, 0);
while(1){
XDrawString (display, win, mygc, 10, 10, "Hallo", 5);
XFlush(display);
sleep(1);
}
XDestroyWindow(display, win);
XCloseDisplay (display);
}
Nun möchte ich wissen wie ich den Text direkt auf den Desktop schreiben kann, also ohne ein sichtbares Fenster.
Ich hab mir folgendes überlegt:
+ entweder gibt es eine Funktion mit der ich einen Text auf dem Desktop anzeigen lassen kann
+ oder ich muss ein Fenster erstellen das unsichtbar ist.
Mein Ziel ist es irgenwann mal ein Programm wie "torsmo" zu haben.
Bei diesem Programm werden ja Systeminformation direkt auf den Desktop geschrieben und dann alle paar Sekunden aktualisiert.
Ich hoffe Ihr könnt mir helfen....
Gruß kurm_de
ich beschäftige mich zur Zeit mit der XLib unter DSL (DammSmallLinux), dazu habe ich angefangen mir von der Seite www.pronix.de
das OpenBook "Linux-Unix-Programmierung" (Kapitel 13) durchzulesen.
Nun bin ich soweit das ich ein Fenster erstellen kann und das in dem Fenster ein Text erscheint.
Mein Code sieht dann so aus:
/* hallo.c */
#include <stdio.h>
#include <stdlib.h>
#include <X11/keysym.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
static int create_window (void);
/* Globale Variablen */
static Display *display;
static int screen;
static int depth;
static Window win;
/* Funktion erzeugt ein Fenster */
static int create_window (void) {
char *window_name = "Einfaches Fenster - hallo";
char *icon_name = "window";
static XSizeHints size_hints;
Window rootwin;
/* X-Sitzung oeffnen */
display = XOpenDisplay (NULL);
/* Standardbildschirm eines Displays */
screen = XDefaultScreen (display);
rootwin = RootWindow (display, screen);
win = XCreateSimpleWindow ( display, rootwin, 1, 1, 500, 500, 5,
BlackPixel (display, screen),WhitePixel (display, screen) );
size_hints.flags = PSize | PMinSize | PMaxSize;
size_hints.min_width = 500;
size_hints.max_width = 500;
size_hints.min_height = 500;
size_hints.max_height = 500;
XSetStandardProperties ( display, win, window_name, icon_name, None, 0, 0, &size_hints );
/* Fenster anzeigen */
XMapWindow (display, win);
return 1;
}
int main (int argc, char **argv) {
Font font;
GC mygc;
create_window ();
mygc = XCreateGC (display, win , 0, 0);
while(1){
XDrawString (display, win, mygc, 10, 10, "Hallo", 5);
XFlush(display);
sleep(1);
}
XDestroyWindow(display, win);
XCloseDisplay (display);
}
Nun möchte ich wissen wie ich den Text direkt auf den Desktop schreiben kann, also ohne ein sichtbares Fenster.
Ich hab mir folgendes überlegt:
+ entweder gibt es eine Funktion mit der ich einen Text auf dem Desktop anzeigen lassen kann
+ oder ich muss ein Fenster erstellen das unsichtbar ist.
Mein Ziel ist es irgenwann mal ein Programm wie "torsmo" zu haben.
Bei diesem Programm werden ja Systeminformation direkt auf den Desktop geschrieben und dann alle paar Sekunden aktualisiert.
Ich hoffe Ihr könnt mir helfen....
Gruß kurm_de