Einzelnen Beitrag anzeigen

Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Text auf Desktop ausgeben

  Alt 22. Mai 2007, 11:56
Erstmal sollte man klären was man unter Desktop versteht.
Wenn man den Desktop nach Microsoft-Art meint (das absolute Root-Window), dann hat man das Problem, welches Frank angesprochen hat.

Meint man hingegen die Fläche, auf der sich die Icons befinden (aka SysListView) kann man das Ganze relativ einfach umsetzen:

Delphi-Quellcode:
procedure TForm1.tm_Timer1Timer(Sender: TObject);
var
  wnd : HWND;
  Canv : TCanvas;
  t : STring;
  r : TRect;
begin
  t:=TimeToStr(now);

  wnd:=GetDesktopWindow;
  wnd:=FindWindowEx(wnd, 0, 'Progman', nil);
  wnd:=FindWindowEx(wnd, 0, 'SHELLDLL_DefView', nil);
  wnd:=FindWindowEx(wnd, 0, 'SysListView32', nil);
  Canv:=TCanvas.Create;
  Canv.Handle:=GetDc(wnd);
  Canv.Brush.Style:=bsClear;
  r:= Rect(100,100,100+Canv.TextWidth(t),100+canv.TextHeight(t));

  InvalidateRect(wnd,@r,true);
  SendMessage(wnd, WM_PAINT,0,0);

  Canv.TextOut(100,100, t);
  Canv.Free;
end;
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat