如何用delphi模仿 windows text copyer的功能?抓取屏幕上的文字

怎么用delphi模仿 windows text copyer的功能?抓取屏幕上的文字
我在****看到了一段类似的代码
如下:function GetText(hWndNow:Integer):String;
var 
  buf:Array of Char;
  t:String;
  i:Integer;
begin
  hLength:=SendMessage(hWndNow,WM_GETTEXTLENGTH,0,0);
  if hLength> 0 then
  begin
  SetLength(buf,hLength+1);
  SendMessage(hWndNow,WM_GETTEXT,hLength+1,LPARAM(buf));
  for i:=0 to Length(buf) do
  t:=t+buf[i];

  GetText:=t;
  end
  else
  GetText:= ' ';
end;
但是它不能截取桌面或文件夹的文件名,只显示folderview 如何解决?
还有 如何实现被抓取控件的边缘高亮。。就是画个和控件一样大的矩形。。。

------解决方案--------------------
探讨
怎么没人啊……