一个delphi小问题!(50分)

  • 主题发起人 主题发起人 张辉明
  • 开始时间 开始时间

张辉明

Unregistered / Unconfirmed
GUEST, unregistred user!
我GetCurrentDir()获得当前应用程序的路径。
可是当把这个程序做一个桌面快捷方式时,打开桌面快捷方式时,返回的就是桌面打开桌面快捷方式的
位置。怎样才能得到当前程序的真正位置呢?
 
Application.ExeName可以返回当前EXE所在位置
 
Path:=ExtractFilePath(Application.ExeName);
 
Path:=ExtratcFilePath(Paramstr(0));
 
ParamStr(0)!
 
坚决支持TYZhang的用法
 
path:=ExtractFilePath(Paramstr(0);
 
//获得应用程序路径
function TMainForm.GetExePath:String;
begin
Result:=ExtractFilePath(ParamStr(0));
if Result[Length(Result)]<>'/' then
Result:=Result+'/';
end;
 
这样做内存的使用会优化些:
function GetExePath: String;
var
X: Integer;
begin
Result:= ParamStr(0);
X:= Length(ExtractFilePath(Result));
SetLength(Result, X);
end;
或者就更彻底一点
function GetExePath: String;
var
X: Integer;
begin
Result:= ParamStr(0);
for X:= Length(Result) downto 1 do
if Result[X] = '/' then begin
SetLength(Result, X);
Break;
end;
end;

btw To: 硬木花椒
ExtractFilePath 不需要判别有没有最后的“/”,一定有的,反之,那个
ExtractFileDir 就没有(根目录除外)。:)
 
Path:=ExtratcFilePath(Paramstr(0));
 
使用ExtractFilePath(Paramstr(0));和ExtractFilePath(Application.ExeName);都可以
但是要判断一下'/',就像楼上各老兄说的那样。
 
接受答案了.
 
后退
顶部