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.