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

简单说如:D:\123这个文件夹有2个程序,project1.exe和project2.exe而project1.exe需要打开它所在目录的另一个程序project2.e... 简单说如: 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这种方法,关了可以再开,。而且不会老是占内存。 展开
 我来答
windblast
推荐于2017-10-25 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13617
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

动态获取程序所在目录,通常的代码如下:

var ExePath: string;
begin
  ExePath := ExtractFilePath(Application.ExeName) + 'project2.exe';
  ShowMessage(ExePath);
end;

再 ShellExecute 或是 WinExec 执行 ExePath。

匿名用户
2013-09-05
展开全部
先回答你分割线上面的问题如果在同一个目录很简单, 先引用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.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-05
展开全部
创建窗体 form2:=Tform2.create(application);显示窗体 form2.ShowModal;释放窗体 form2.free;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-05
展开全部
var s:string;
s:=ExtractFilePath(Application.Exename); //获取当前路径返回例如:c:\windows\ //注意这里带个\斜干
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式