绝对路径问题(50分)

  • 主题发起人 主题发起人 太阳火
  • 开始时间 开始时间

太阳火

Unregistered / Unconfirmed
GUEST, unregistred user!
(Win2K&XP)我从registry读一些文件的路径,例如桌面壁纸文件名,读出来的不是一个
绝对路径,而是有诸如%SYSTEMROOT%,%SYSTEMDRIVE%之类的。
怎样还远成真正的绝对路径?
eg: %SYSTEMDRIVE%/1.jpg --> C:/1.jpg (假设系统装在C盘)
 
你可以找系统路径
Buf:array[0..MAX_PATH] of char
GetSystemDirectory(Buf, MAX_PATH) //返回SYSTEM路径
GetWindowsDirectory(Buf, MAX_PATH) //返回WINDOWS路径
这样就可以得到系统的绝对路径,然后通过分析, 再把%SYSTEMDRIVE%之类的转换出来即可
如:
若%SYSTEMDRIVE%/1.jpg --> C:/1.jpg
function GetWinDir: String; //SYSTEM 目录
var
Buf: array[0..MAX_PATH] of char;
begin
GetSystemDirectory(Buf, MAX_PATH);
Result := Buf;
if Result[Length(Result)]<>'/' then
Result := Result + '/';
end;
var
buffer:string;
…………
buffer:=GetWinDir;
setlength(buffer,1);
// 绝对路径就是
b+':/1.jpg'


 
接受答案了.
 
后退
顶部