const SPI_GETDESKWALLPAPER = $0073;
var
  vBuffer: array[0..255] of Char;
begin                   SPI_GETACCESSTIMEOUT
  SystemParametersInfo(SPI_GETDESKWALLPAPER, 200, @vBuffer, 0);
  Memo1.Lines.Text := vBuffer;
end;
上面的代码不能获取,不知哪位试过,可以准确获取桌面壁纸路径的?

解决方案 »

  1.   

    HKY_CURRENT_USER\CONTROL PANEL\DESKTOP的键值WALLPAPER储存的就是标准的桌面壁纸路径
      

  2.   

    给我分吧~
    Thanks~
    procedure TForm1.FormCreate(Sender: TObject);
    var
     s: array[1..200] of char;
    const
      SPI_GETDESKWALLPAPER = 115;
    begin
      SystemParametersInfo(SPI_GETDESKWALLPAPER, 200,  @s, 0);
      showmessage(s);
    end;
      

  3.   

    现在有很多的GHOST系统,我的虽然不是,但和一般的系统也不太一样,是赢政完整安装版的
    我想说的是,有没有一种方法,可以在不同的系统版本中,准确动态获取路径,我发的代码,在我的机器上,就不能准确获取
    通过注册表,也不能获取。找了一下规律,如果通过系统的桌面,浏览到壁纸,然后设置为桌面壁纸,哪么2楼的注册表方法,可以找到
    如果是通过画图软件把图片设为壁纸,通过注册表找不到。
      

  4.   

    我写了一个Environment类,用来获取系统环境参数,比如当前的机器名称、用户名、当前应用程序的路径、系统环境变量、逻辑盘符、某些特殊文件夹的位置、本机的IP地址、外网的IP地址、网卡的物理地址(MAC)、Internet连接状态等等。有兴趣的可以看看:http://www.zuobaoquan.com/2009/04/26/delphi-system-environment-pas/