Autor |
Beitrag |
KlausNeu
      
Beiträge: 35
|
Verfasst: Sa 21.10.06 17:31
Hallo und guten Tag,
ich möchte (in einem Netzwerk) PC-Name und Benutzername auf den Desktop schreiben. Im Forum habe ich das Gleiche Problem bei C# gefunden, es wurde dort aber auch nicht zufriedenstellend gelöst. Wenn man ein eigenes Programmfenster erstellt wird es u.U.in den Vordergrund geholt oder geschlossen, es soll aber immer vorhanden sein, allerdings eben nur auf dem Desktop. Die Geschichte mit der registry, wo man sich die Windowsversion oder was auch immer anzeigen lassen kann, hilft mit auch nicht weiter. Die Suche mit Stichwort DEsktop hat 931 Treffer gegeben, ich hab nur die ersten 5 Seiten durchgeguckt.
Hat jemand eine Idee? Wäre dankbar für jeden Tipp.
Gruß Klaus
|
|
hui1991
      
Beiträge: 433
Windows XP, WIndows Vista
Turbo Delphi Explorer| Delphi, PHP,Blitzbasic
|
Verfasst: Sa 21.10.06 17:58
Hallo,
soweit ich dich verstanden habe, willst du auf dem Bildschirm schreiben.
Ich habe hier auch mal gefragt, hab auch meine Lösung hingeschrieben. Durch den Thread kann man das schreiben eines Textes und BIldest auf dem Bildschirm machen.
Blos für Grafik-Anwendungen die den Bildschirm oft löschen, ist das keine lösung.
Ich hoffe ich habe dir geholfen.
MfG
hui1991
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Sa 21.10.06 17:59
Mal gefunden, nicht getestet vieleicht Hilft Dir das was.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| var Form1: TForm1; MYTEXT: TCanvas; HND: HWND; implementation
{$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin MYTEXT.Font.Name := 'Arial'; MYTEXT.Font.Size := 50; MYTEXT.Font.Color := clRed; MYTEXT.Brush.Style := bsClear; MYTEXT.Textout(100, 100, 'MARTIN MUSTERMANN'); end;
procedure TForm1.FormCreate(Sender: TObject); begin MYTEXT := TCanvas.Create; hnd := GetWindowDC(0); MYTEXT.Handle := HND; end;
procedure TForm1.FormDestroy(Sender: TObject); begin MYTEXT.Free; Releasedc(0, HND); end; |
Blackheart
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
KlausNeu 
      
Beiträge: 35
|
Verfasst: Sa 21.10.06 18:16
Das ging ja superfix, vielen Dank. Die Lösung von Blackheart hab ich gleich ausprobiert, klappt auch, aber sobald ein anderes Fenster ganz oder auch nur teilweise drübergeht, ist der Text wieder weg, der sollte aber bleiben. Ist eigentlich logisch, denn Canvas ist ja quasi der allgemeine Zeichenhintergrund, auf dem alle Anwendungen mehr oder weniger rumrödeln und nicht mit dem Desktop identisch.
Den anderen Vorschlag probier ich noch aus und sage dann Bescheid.
Gruß Klaus
|
|
KlausNeu 
      
Beiträge: 35
|
Verfasst: Sa 21.10.06 18:21
Schon passiert. Genau das Gleiche. Text erscheint, kann aber mit jedem Programmfenster gelöscht werden.
Gruß Klaus
|
|
hui1991
      
Beiträge: 433
Windows XP, WIndows Vista
Turbo Delphi Explorer| Delphi, PHP,Blitzbasic
|
Verfasst: Sa 21.10.06 18:21
Entweder, lässt du das mit irgendeinem Code den ich nicht kenne immer neuzeichnen, wenn sich das geändert hat.
oder
Du lässt es in einer schleife laufen.
Sonst kannst du es warscheinlich nicht immer sichbar halten.
MfG
hui1991
|
|
Hack Gott
      
Beiträge: 409
Windows Vista
Delphi 2005 Personal, Delphi 7
|
Verfasst: Sa 21.10.06 18:28
Wenn du eine Anwendungen mit Formen benutzt:
neue Form
label drauf
labe&Form Transparent := true
Transparentcolor bei der form auf bsp. weiß
color ber dorm auf weiß
borderstyles := bsnone
dann irgendwie dauerhaft in den vordergund (gibts auch als eigenschaft, weiß ich grad aber net so genau)
_________________ "Je mehr Käse, desto mehr Löcher; Je mehr Löcher, desto weniger Käse. Daraus folgt: Je mehr Käse desto weniger Käse!"
|
|
KlausNeu 
      
Beiträge: 35
|
Verfasst: Sa 21.10.06 18:37
Hallo,
das mit der eigenen Anwendung habe ich mir auch als erstes überlegt, aber z.B. mit der Windows-Taste + D werden ja alle Anwendungen in die taskleiste gelegt und meine dann auch. Die Lösung mit der Schleife müsste funktionieren, ist aber nach meinem Empfinden sehr unelegant. Vielleicht gibts da sowas wie OnPaint für den Desktop, mal gucken. Inzwischen hab ich mir überlegt, dass es natürlich auch ausreichen würde, wenn der Text den ich anzeigen möchte, im Systray stünde. Icons hab ich da schon hingezaubert, evtl. geht das ja auch mit variablem Text. Vielleicht hat jemand einen Vorschlag.
Gruß Klaus
|
|
Hack Gott
      
Beiträge: 409
Windows Vista
Delphi 2005 Personal, Delphi 7
|
Verfasst: Sa 21.10.06 18:47
Text in nen kleines Image rein, Imae anzeigen
_________________ "Je mehr Käse, desto mehr Löcher; Je mehr Löcher, desto weniger Käse. Daraus folgt: Je mehr Käse desto weniger Käse!"
|
|
KlausNeu 
      
Beiträge: 35
|
Verfasst: Sa 21.10.06 18:49
Das hab ich mir auch schon überlegt, aber wie krieg ich den Text in das Image?
Gruß Klaus
|
|
_frank_
      
Beiträge: 343
Erhaltene Danke: 1
Win XP
Delphi 3 Prof / Turbo Delphi Explorer
|
Verfasst: Sa 21.10.06 19:23
|
|
wolke
      
Beiträge: 240
|
Verfasst: Sa 21.10.06 19:26
Oder per HTML (Stichwort ActiveX Desktop).
|
|
KlausNeu 
      
Beiträge: 35
|
Verfasst: Sa 21.10.06 19:37
Titel: Problem gelöst!
Hallo,
inzwischen habe ich die Lösung gefunden. Das Freewaretool bginfo von sysinternals macht genau das, was ich vorhatte. ( www.sysinternals.com...ilities/BgInfo.html). Man kann alles einstellen, einfach perfekt. Der einzige Fehler ist, dass ich es nicht selbst rausgekriegt habe. Naja.
Gruß Klaus 
|
|
daPimP
      
Beiträge: 54
Erhaltene Danke: 1
Win XP
D6, D7
|
Verfasst: Mi 25.10.06 13:29
Vielleicht sollte noch erwähnt werden, wie das Tool auf den Desktop schreibt...
Einfach in die Hintergrunddatei den Text schreiben, die Datei abspeichern - und voila.
_________________ watch out ... Sy SS na pp er... coming soon
|
|
Saubäär
      
Beiträge: 376
|
Verfasst: Mi 25.10.06 13:43
Du kannst auch einen kleinen Text neben die Uhr im Tray schreiben lassen.
<Zitat>
Text neben der Systemuhr von Windows anzeigen lassen --> 00:00 TEXT
contributed by orisits
Text neben der Systemuhr von Windows anzeigen lassen --> 00:00 TEXT
Dein Name oder was ähnliches neben der Systemuhr unten rechts
Öffne den Registrierungs Editor indem du auf Start->Ausführen
gehst und regedit eingibst.
Suche den Key HKEY_CURRENT_USER
Suche hier International.
Hier müssen folgende Werte gesetzt werden:
Im Schlüssel...
s1159 gib einen Wert ein (Rechtsklick -->ändern), als Wert gibst du den Text ein, den du neben der Uhr sehen willst, zB also Uhr dann wird in zukunft
00:00 Uhr angezeigt
s2359 mache hier dasselbe wie beim Schlüssel s1159
sShortDate sollte den Wert d.M.yyyy stehen.
sTimeFormat sollte folgender Wert stehen: HH:mm:ss tt
Nach einem Neustart wird der Text neben der Uhrzeit angezeigt.
<Zitat Ende>
Gruß Saubäär
|
|