论坛风格切换切换到宽版
  • 5360阅读
  • 8回复

问一个NSIS读取注册表某值做默认安装路径的问题 [复制链接]

上一主题 下一主题
离线iceshell
 
发帖
194
金钱
0
威望
0
只看楼主 倒序阅读 0 发表于: 2006-06-04
举例说有这么一段注册表路径。


QUOTE
[HKEY_CLASSES_ROOT\Software\RealNetworks\RealPlayer\6.0\Preferences\MainApp]
@="C:\\Program Files\\Ringz Studio\\Storm Codec\\mplayerc.exe"

NSIS NSIS 该怎样写才可以读取“C:\\Program Files\\Ringz Studio\\Storm Codec”这一段作为程序默认安装路径?

离线溪流

发帖
565
金钱
-10380
威望
-1038
只看该作者 1 发表于: 2006-06-05
究竟是 NSIS 还是 Inno ?
因为用纸过大不利环保,2009年6月1日起,禁止使用纸质材料擦屁股,提倡公民养成不擦屁股或自带可重用抹布的习惯。违者最高可处以菊爆。
离线无尽天空
发帖
182
金钱
0
威望
0
只看该作者 2 发表于: 2006-06-05
呵呵,复制我的也不修改好一点。
离线iceshell
发帖
194
金钱
0
威望
0
只看该作者 3 发表于: 2006-06-05
我问的是NSIS啊  呵呵  楼上的 不好意思哈

因为不会在NSIS中读取@=的路径啊哈 希望帮忙哈
离线foolman
发帖
220
金钱
0
威望
0
只看该作者 4 发表于: 2006-06-06
CODE

ReadRegStr $R0 HKCR "Software\RealNetworks\RealPlayer\6.0\Preferences\MainApp" ""


$R0即是你要读取的值。
离线stylist
发帖
133
金钱
0
威望
0
只看该作者 5 发表于: 2006-08-03
你可以在function .oninit中加上
楼上朋友的东东找到你以前的安装路径。。。
然后使用
strcpy $INSTDIR $VAR
注:$VAR就是你获取的安装路径
对酒当歌,人生几何。
辟如朝露,去日苦多。
慨当以慷,忧思难忘。
何以解忧,唯有杜康。
离线hump

发帖
48
金钱
0
威望
0
只看该作者 6 发表于: 2006-11-10
还是不太懂呀,帮我写详细点好吗?最好能写出代码来
离线viphjw
发帖
134
金钱
0
威望
0
只看该作者 7 发表于: 2006-11-11
看帮助,那个讲的很清楚的
离线ph700

发帖
145
金钱
0
威望
0
只看该作者 8 发表于: 2006-11-11
; GetParent
; 输入,堆栈顶部 (例如 C:\Program Files\Poop)
; 输出,堆栈顶部 (替换,例如 C:\Program Files)
; 不改变其它变量值。
;
; 用法:
;   Push "C:\Program Files\Directory\Whatever"
;   Call GetParent
;   Pop $R0
;   ; 在这里 $R0 将等于"C:\Program Files\Directory"

Function GetParent

  Exch $R0
  Push $R1
  Push $R2
  Push $R3
 
  StrCpy $R1 0
  StrLen $R2 $R0
 
  loop:
  IntOp $R1 $R1 + 1
  IntCmp $R1 $R2 get 0 get
  StrCpy $R3 $R0 1 -$R1
  StrCmp $R3 "\" get
  Goto loop
 
  get:
  StrCpy $R0 $R0 -$R1
 
  Pop $R3
  Pop $R2
  Pop $R1
  Exch $R0
 
FunctionEnd
wgl shi sd
图像