找文件路径(20分)

  • 主题发起人 主题发起人 hongsen
  • 开始时间 开始时间
H

hongsen

Unregistered / Unconfirmed
GUEST, unregistred user!
给定windword.exe或其它任何执行文件名如myprogram.exe,要找出其安装<br>路径,本人试过getfullpathname和searchpath,都不对。<br>用注册表吗?好象也不对。请大家帮忙<br>
 
我觉得应该用 SearchPath .
 
什么意思?
 
最初的问题是从自己的应用程序中调用AUTOCAD安装目录下的某些文件。要使自己的程序能运行在不同的机器上,但不知别人是如何装AUTOCAD在哪个目录下。
 
好象用FindFirst函数可以解决你的问题。
 
没有通用的方法,但是一般来说应用程序会在注册表中写入各种安装信息,毕竟它自己也要确定各种路径、设置之类的东西嘛;一般来说注册表路径是<br>HKEY_LOCAL_MACHINE/Software/"CompanyName"/"SoftwareName"/"Version",<br>以Delphi4为例,它的路径信息在<br>HKEY_LOCAL_MACHINE/Software/Borland/Delphi/4.0下,<br>信息如下:<br>"Delphi 4"="C://Program Files//Borland//Delphi4//Bin//Delphi32.exe"<br>"RootDir"="C://Program Files//Borland//Delphi4"<br>"Version"="CSS"<br>"UseSharedFiles"="TRUE"<br>"Update #1 Installed"="TRUE"<br>"Update #2 Installed"="TRUE"<br>"Update #3 Installed"="TRUE"<br>当然还有其他很多信息也在附近。<br>如果按这种方式找不到,还可以看看HKEY_CURRENT_USER下的类似路径,如果还是找不到,可以看看Windows下的Ini文件,如果还是找不到只能说这个破程序太不标准了。<br>这是标准方法,但各种程序使用的方法不一定相同,总的来说你应该先安装一下应用程序,然后自己看看信息保存在哪里,确定之后就可以在你的程序中去取这些信息了。<br>如果还是不明白,mail to me
 
var Searchrec:Tsearchrec<br>begin<br>...<br>findfirst('目录录径/*.*',属性,searchrec);<br>searchrec.filename为文件名称<br>至于路径,可自己用copy(..)实现<br><br>如果注册表中有信息,最好找注册表
 
注册表的方法不可行,因为win16的程序就没办法了。<br>其实,Searchpath和FindFirstFile都可以。<br>
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
877
DelphiTeacher的专栏
D
D
回复
0
查看
845
DelphiTeacher的专栏
D
后退
顶部