外部EXE程序的打开(50分)

  • 主题发起人 主题发起人 cndsb
  • 开始时间 开始时间
C

cndsb

Unregistered / Unconfirmed
GUEST, unregistred user!
我想动态的打开/aa/bb/run.exe文件该如何实现,文件所在硬盘是变化的,可能在C盘,也可能在D盘..
 
uses shellapi;<br><br><br>&nbsp;ShellExecute(Handle, nil, pchar('c:/aa/bb/run.exe'), nil, nil, SW_SHOWNORMAL);<br>&nbsp;
 
知道相对路径吗,如果知道可以用相对路径打开
 
不知道,我只能做到一级目录,二级就做不到了,请帮帮我?先谢了<br>
 
那就是说要打开的文件所在目录跟当前程序所在目录没有任何关系?<br>那不太好办,先查找再打开行不行
 
var<br>filename:string<br>begin<br>&nbsp; if OpenDialog1.Execute then<br>&nbsp; &nbsp; filename:=OpenDialog1.FileName;<br>//如果是当前的项目的文件夹下可以,不管在哪个目录下都可以<br>&nbsp;// filename:=ExtractFilePath(ParamStr(0))+ '/aa/bb/run.exe'';<br>ShellExecute(Handle, nil, pchar(filename), nil, nil, SW_SHOWNORMAL);<br>&nbsp; <br><br>&nbsp; <br>end;
 
我这样写的,怎么打不开呢?我要打开的/aa/bb/run.exe<br>var<br>fpath:string;<br>begin<br>fpath:=ExtractFilePath(ParamStr(0))+'bb/run.exe';<br>ShellExecute(handle,nil,pchar(fpath),nil,nil,sw_shownormal);<br>end;
 
你的paramStr(0)是什么东西
 
主程序所在目录,可能等于Application.exename
 
to siyan<br>那就是说要打开的文件所在目录跟当前程序所在目录没有任何关系?<br>不有关系,打开文件就在当前程序所在目录下的子目录,也就是所在程序在aa下,而EXE文件在bb下,不知您能否给出详细代码?谢谢
 
那也就是说run.exe与你的主程序目录是有关系的,既然这样为什么<br>不直接用相对路径打开
 
to siyan<br>我的ExtractFilePath(ParamStr(0))取到的不就是当前程序的路径吗?可只是一级呀?(也就说只能取到AA)<br>是您说的相对路径吧.你能给出相对路径的具体写法吗,我是初学者,水平有限,望指教.
 
用winexec(Pchar('./bb/run.exe'),SW_SHOW)试试
 
多人接受答案了。
 
后退
顶部