论坛风格切换切换到宽版
  • 3192阅读
  • 3回复

请教一个通过注册表获取安装目录路径问题 [复制链接]

上一主题 下一主题
离线raindy
 

发帖
1931
金钱
10
威望
1
只看楼主 倒序阅读 0 发表于: 2009-11-15
已经在注册表中找到如下键值:

[HKEY_LOCAL_MACHINE\SOFTWARE\Cleanse]
"Path"=hex(2):43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,20,\
00,46,00,69,00,6c,00,65,00,73,00,5c,00,5a,00,61,00,72,00,64,00,73,00,20,00,\
73,00,6f,00,66,00,74,00,77,00,61,00,72,00,65,00,5c,00,43,00,6c,00,65,00,61,\
00,6e,00,73,00,65,00,20,00,55,00,6e,00,69,00,6e,00,73,00,74,00,61,00,6c,00,\
6c,00,65,00,72,00,20,00,50,00,72,00,6f,00,5c,00,43,00,6c,00,65,00,61,00,6e,\
00,73,00,65,00,20,00,75,00,6e,00,69,00,6e,00,73,00,74,00,61,00,6c,00,6c,00,\
65,00,72,00,2e,00,65,00,78,00,65,00,00,00


这个hex即=C:\Program Files\Zards software\Cleanse Uninstaller Pro\Cleanse Uninstaller.exe

请教一下:怎么从完整路径的主程序,得到主程序所在的目录(类似于dos命令的CD..)
即从 C:\Program Files\Zards software\Cleanse Uninstaller Pro\Cleanse Uninstaller.exe
得到目录 C:\Program Files\Zards software\Cleanse Uninstaller Pro\
因为这款软件没法直接到安装目录,只搜索到主程序的完整路径
下面的INNO脚本要怎么写,希望虎兄等人指点一下,谢谢!
DefaultDirName={reg:[HKLM\SOFTWARE\Cleanse, ????(这里怎么写)}

PS: DefaultDirName就是获取安装目录,但这款软件没法搜索到安装目录,能搜索到安装目录一切就简单了
离线raindy

发帖
1931
金钱
10
威望
1
只看该作者 1 发表于: 2009-11-15
偶不懂编程
通过这个函数怎么写代码
function ExtractFilePath(const FileName: string): String;
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 2 发表于: 2009-11-15
这样就行了:
DefaultDirName="{code:ExtractFilePath|{reg:HKLM\SOFTWARE\Cleanse,Path}}"

不要其它代码
离线raindy

发帖
1931
金钱
10
威望
1
只看该作者 3 发表于: 2009-11-15
非常感谢虎兄
我试试