delphi 怎样得到系统的搜索路径或系统路径,和程序运行的路径???

delphi 怎样得到系统的搜索路径或系统路径,和程序运行的路径???,第1张

var

tmpdir:stringconstmax_path=array

of

char系统路径

getsystemdirectory(tmpdir,MAX_PATH)

//取得windows目录

c:\windows

GetWindowsDirectory(tmpdir,MAX_PATH)

//取得应用程序所在的路径

Vfilepath:=application.ExeName

Application.ExeName可以获得当前程序路径var windir:array [0..255] of char

GetWindowsDirectory(windir,255)

Result :=windir获取系统路径

方法有二,如下详述:

一、循环测试

已知相对路径,与绝对路径之差仅在于根路径,即探索究竟在哪个分区上,那么,最傻瓜的方法就是从C循环至Z,逐一测试路径是否存在,大致代码为:

function GetEurekaLogDir : string

const

C_sDir : string = 'Eurekalog 5\delphi5'

var

i : Integer

s : string

begin

Result := ''

for i := Ord( 'C' ) to Ord( 'Z' ) do

begin

s := Chr( i ) + ':\' + C_sDir

if DirectoryExists( s ) then

begin

Result := s

Exit

end

end

end

也可以增加一点儿“技术含量”,不是简单地从C循环至Z,而是先获取系统具有的分区配置,仅在配置列表中循环测试,调用GetLogicalDrives或GetLogicalDriveStrings均可实现。

二、查询注册表

不少软件安装后,会在注册表中记录其安装位置,对于EurekaLog的安装位置,可以手工打开注册表编辑器(RegEdit),查找到它的位置,记住其关键的路径,然后编程序获取该路径下的键值。

这个方法应该更加正规,它还支持软件在安装之际,人为改变了安装路径的情形。例如,你把EurekaLog安装在"c:\program files\myPreferred"等不带EurekaLog字样的路径下时,也能找到它。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11189338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存