当前位置:编程学习 > Delphi >>

DELPHI访问自身程序所在目录的其他文件?

简单说如:

D:\123这个文件夹有2个程序,project1.exe和project2.exe

而project1.exe需要打开它所在目录的另一个程序project2.exe

如果知道程序一定在D:\123 ,我就可以设定访问 D:\123\project2.exe

但不一定解压在d:\123 ,该怎么运行到它呢?

……………………………………我是分割线………………………………………

题外话:

project2.exe是project1.exe的一个from,

之前是用 增加一个FROM得方法,但太占内存了。

close之后。占得内存没有被释放掉。 我就用free这个方法。

但FREE掉后,不知道如何再重新创建出来。。

再次打开FROM2会出错的。 所以我想试试 project1.exe和project2.exe这种方法,

关了可以再开,。而且不会老是占内存。

答案:

先回答你分割线上面的问题

如果在同一个目录很简单, 先引用ShellAPI单元

uses ShellAPI;

然后用ShellExecute来打开文件

我写了个临时程序给你, 楼主可以参考下

-----delphi 2010下运行成功

//

implementation
uses ShellAPI;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
ExePath: string;
begin
{取本程序路径的两种办法, 第一种}
ExePath := '.\project2.exe';
{下面是第二种办法}
ExePath := ExcludeTrailingBackSlash(ExtractFileDir(Application.ExeName) + '\project2.exe');
{下面打开程序就OK}
if FileExists(ExePath) then
ShellExecute(Handle, 'Open', PChar(ExePath), nil, nil, SW_SHOWNORMAL)
else
ShowMessage('project2.exe文件不存在');
end;

end.

var s:string;
s:=ExtractFilePath(Application.Exename); //获取当前路径

返回例如:c:\windows\ //注意这里带个\斜干

创建窗体 form2:=Tform2.create(application);

显示窗体 form2.ShowModal;

释放窗体 form2.free;

上一个:这查询代码哪里错了 delphi的
下一个:在Delphi中,怎样引用一个程序?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,