一段代码,只实简单地现了透明,但只要桌面一刷就会恢复,其它软件不知是怎么实现的,个人猜测,可能是捕获到桌面刷新的消息后就再重新设置(未经考证之想法)
var wnd:HWND;
begin
Wnd := GetDesktopWindow;
Wnd := FindWindowEx(Wnd, 0, 'Progman', nil);
Wnd := FindWindowEx(Wnd, 0, 'SHELLDLL_DefView', nil);
Wnd := FindWindowEx(Wnd, 0, 'SysListView32', nil);
SendMessage(Wnd, $1026, 0, $ffffffff);
SendMessage(Wnd, $1024, 0, $00ffffff);
InvalidateRect(Wnd, nil, TRUE);
end;
///
经过验证,原来的假设是正确的。“Windows优化大师”就是在注册表的启动项新建了一个名为“桌面图标文字自动透明”键值为“X:/Program Files/Wom/WinMem.exe XP”的项,在启动时运行了一个外部程序来实现桌面文字的透明的。