永发信息网

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

答案:3  悬赏:10  手机版
解决时间 2021-07-31 21:24
  • 提问者网友:酱爆肉
  • 2021-07-31 11:26

简单说如:

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这种方法,

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

最佳答案
  • 五星知识达人网友:逐風
  • 2021-07-31 12:59

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


如果在同一个目录很简单, 先引用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.

全部回答
  • 1楼网友:神鬼未生
  • 2021-07-31 14:53

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

显示窗体 form2.ShowModal;

释放窗体 form2.free;

  • 2楼网友:一把行者刀
  • 2021-07-31 13:18

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

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

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯