如何获得操作系统桌面的路径,请高手帮助.

解决方案 »

  1.   

    通过SHGetSpecialFolderPath(windows api)获得,
    WINSHELLAPI HRESULT WINAPI SHGetSpecialFolderPath(
        HWND hwndOwner,
        LPTSTR lpszPath,
        int nFolder,
        BOOL fCreate
    ); 
    nfolder可以为常数
    CSIDL_BITBUCKET  回收站
    CSIDL_CONTROLS  控制面板
    CSIDL_DESKTOP  桌面
    CSIDL_DRIVES  我的电脑
    CSIDL_FAVORITES  收藏夹 
    CSIDL_FONTS  字体
    CSIDL_HISTORY  历史记录
    CSIDL_INTERNET  internet
    CSIDL_NETHOOD  网上邻居
    CSIDL_PERSONAL  我的文档
    CSIDL_PRINTERS  打印机
    CSIDL_PROGRAMS  程序组
    。等等。
      

  2.   

    uses Registry;
    .....function GetDesktopDir: String;
    var
    R: TRegistry;
    begin
      R := TRegistry.Create;
      R.OpenKey('SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\SHELL FOLDERS', FALSE);
      Result := R.ReadString('DESKTOP');
      Result := UpperCase(Result);
      R.Free;
    end;
    //函數返回的字符串就是路徑;
      

  3.   

    其中這句是將返回的路徑字符串轉換為大寫,可不要;
    Result := UpperCase(Result);