Παρασκευή 11 Μαΐου 2012

Drawing text on desktop

Using this simple trick, you can write any text right on Windows desktop. You can choose text color, transparency, position…

unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var dc: hdc;
    ocolor: COLORREF;
    oBKM : integer;
    OurText: PAnsiChar;
begin
  OurText := 'Hello, World!';
  dc := GetWindowDC(GetDesktopWindow);
  try
    ocolor := SetTextColor(DC, RGB(0, 255, 0));
    oBKM := SetBkMode(DC, TRANSPARENT);
    TextOut(DC, 500, 300, OurText, Length(OurText));
    SetBkMode(DC, oBKM);
    SetTextColor(DC, ocolor);
  finally
    ReleaseDC(GetDesktopWindow, DC);
  end;
end;
 
end.
 
This trick has one little problem. As you can see, if you move some 
window or any object (icon) over the text, it will be deleted. So you 
must take of “redrawing” the text. 

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου