求教WinExec的使用(50分)

  • 主题发起人 主题发起人 wxb761014
  • 开始时间 开始时间
W

wxb761014

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp;由于课题需要,我需将一些小程序组成软件包。<br>?1:如何打包,请指教。<br>&nbsp; 另外,我在软件包中使用了WinExec来调用对应程序。<br>?2:但WinExec需要程序的具体路径,请问大虾<br>如何在用户安装软件包后路径不定的情形下实现<br>灵活调用。
 
1:找一个安装工具打包,如 installshield<br>2:安装时,把安装路径写入注册表或ini文件中.运行时读注册表或ini 文件取得路径.
 
path中的exe不需要路径(比如windows windows/system 目录下的,<br>和其他列在path中的)<br><br>比如 WinExec('notepad.exe',SW_NORMAL) 就可以了。<br><br>如果是自己的程序,可以用相对目录<br>比如 WinExec('../prg2/prg2.exe',SW_NORMAL)
 
可以用extractfilepath(application.exename)得到执行文件的运行目录,<br>然后加上所要调用的对应程序的相对目录即可,如果调用的对应程序与主程序<br>位于同一目录下就不用加上相对目录了。
 
在当前目录的话<br>WinExec('xxx.exe',SW_NORMAL)即可<br>加相对路径也可
 
个人总觉得WinEXEC在使用上比SHFileExecute不是很方便。<br>至于解决问题的方法,<br>1方面gxg8816的比较行的通,否则用自解包的方式也可以。<br>2方面化石朋友的方法正是我所想的,由于安装时总是安装在同一路径,<br>所以提取应用程序的路径作为装入文件的路径总是正确的。<br>另外一个方法是将应用程序的路径设置为当前路径,<br>然后装入程序时用"./xxx.exe"的方式,也是行的通。
 
各位大虾:<br>&nbsp; 你们的方法我都式过(gxg8816的除外)<br>均五工而返。<br>请问如何再所有硬盘中查找某一特定的<br>.exe文件。<br>gxg8816:能否说的详细写!!!<br>不身感激!!!
 
wxb761014:<br>&nbsp; &nbsp; 你提出的前两个问题,在我的科研项目中也遇到了。为了确定Winexec函数需要程序的路径,我采用的思想与"化石"提出的思想相同,这是完全可行的。Winexec调用的对应程序与主程序的相对位置关系是固定的。<br>&nbsp; &nbsp; 另外,你又提到的“请问如何再所有硬盘中查找某一特定的.exe文件”问题,这样解决:用ExpandFileName()函数可以返回特定文件的完整路径名和文件名.<br>&nbsp; &nbsp;......<br>&nbsp; &nbsp; &nbsp;ExpandFileName('Main.exe');<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
 
最方便的办法是 写 INI文件或者用TRegiste
 
1.程序打包可以用InstallShield,也可以自己编,把exe文件,DLL,数据库文件,帮助文件等等和程序相关的文件考入需安装的机器上(当然,不要忘了压缩),最后,把相关信写入注册表中.(建议用第一种方法).<br>2.Pipi朋友和化石朋友的方法都很好.我比较喜欢化石朋友的方法.
 
多人接受答案了。
 
后退
顶部