我利用下面的代码来做,但还是不行,大家帮我看看是什么原因?我的桌面采用html文件作为背景的。wnd:=FindWindow('Progman', 'Program Manager');
  wnd:=FindWindowEx(wnd, HWND(nil), 'SHELLDLL_DefView','');
  wnd:=FindWindowEx(wnd, HWND(nil), 'SysListView32', '');;
  Listview_SetTextColor(wnd,RGB(0,0,0));
  Listview_SetTextBkColor(wnd,CLR_NONE);
  Listview_RedrawItems(wnd,0,Listview_GetItemCount(wnd));
  UpdateWindow(wnd);

解决方案 »

  1.   

    1、  新建一工程,在 uses 中加入 CommCtrl 单元,窗体上加一个按钮;2、  声明一个取得桌面句柄的函数:function TForm1.GetDesktopHand: THandle;begin  Result:=FindWindow('progman',nil);  Result:=GetWindow(Result,GW_Child);  Result:=GetWindow(Result,GW_Child);end;3、  声明一个设置图标文字颜色的过程:procedure TForm1.SetTextColor(ForeClr, BackClr: TColor);var Hand: THandle;begin  Hand:= GetDesktopHand;  Listview_SetTextColor(Hand,ForeClr);   // 设置文字前景色;  Listview_SetTextBkColor(Hand,BackClr);  // 设置文字背景色,crNone 为透明;  Listview_RedrawItems(Hand,0,Listview_GetItemCount(Hand));  //  重画;end;
      

  2.   

    关键现在的问题是我的桌面使用html作为桌面。