永发信息网

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

答案:3  悬赏:10  手机版
解决时间 2021-07-31 21:24

简单说如:

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.

全部回答

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

显示窗体 form2.ShowModal;

释放窗体 form2.free;

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

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

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
冷水滩区永州安托幼儿园这个地址在什么地方,
怎样改创群人的备注
天龙八部...什么职业最好玩.
邵东市邵阳金玉皇家美容养生汇所在哪里啊,我
电脑刚开机没一会就出现蓝屏代码怎么办啊
深圳雅芳专卖店详细地址谁提供10个?高分。
高仿NOKIA3250现在市场报价是多少
莫使金樽空对 打一字
裤子上粘了金3秒胶水怎么办还有法去除吗?
《原来是美男》共几集?
终极三国中安魂曲的音乐在那可以下载?
西华县周口魔豆Baby时尚童装这个地址怎么能查
听说希大和小队去服役了
地下城与勇士27号更新刷图是出现卡怪
火车怎么拐弯的?
推荐资讯
我才22岁还没结婚,别人说我脸臃肿脸没血色是
周华健代言什么品牌的摩托了
梁园区商丘梁园区民章副食日化商行地址有谁知
资兴市郴州得心家常菜我想知道这个在什么地方
跪求 首个格式连续剧 天下第一
五常市哈尔滨生活秀(建设大街)我想知道这个在
陶然亭去天桥怎么做车
灵宝市三门峡闽豫海鲜酒楼地址有谁知道?有点
为什么游戏人生荣誉点加不起来?
有QQ号 怎么查不到QQ啊?
怎样才可以把自己变的冷默?
你认为什么是网络社区(谢绝粘贴网络理论概念
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?