论坛风格切换切换到宽版
  • 3504阅读
  • 9回复

(已解决)请问wanfu 大哥   inno能实现这样个功能不 [复制链接]

上一主题 下一主题
离线z454892031
 

发帖
50
金钱
500
威望
50
只看楼主 倒序阅读 0 发表于: 2013-09-05
比如我安装一个软件后,它的数据保存为xx.ini ,其中xx.ini 中有个键值(如xxx=D:\xxxxx\xxx.dat)但是这个键值路径又不是固定的,怎样在卸载软件是能自动调用该文件的键值路径并删除相应的文件        
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2013-09-06
假设你说的那个 xx.ini 是一个标准的 ini 文件,那么你只要用下面的语句就可以完成你需要的操作了。
[UninstallRun]
Filename: "{cmd}"; Parameters: "/c del ""{ini:{app}\xx.ini,AAA,BBB}"""

xx.ini 是那个 ini 文件的文件名,里面的内容比如是
[AAA]
BBB=D:\abc\123xyz.dat

上面的语句将在卸载时自动删除 D:\abc\123xyz.dat 这个文件。
离线wanfu

发帖
2711
金钱
11950
威望
1195
只看该作者 2 发表于: 2013-09-06
我也学习了一招,谢谢老虎!
离线z454892031

发帖
50
金钱
500
威望
50
只看该作者 3 发表于: 2013-09-06
回 1楼(gnatix) 的帖子
gnatix:假设你说的那个 xx.ini 是一个标准的 ini 文件,那么你只要用下面的语句就可以完成你需要的操作了。Filename: "{cmd}"; Parameters: "/c del ""{ini:{app}\xx.ini,AAA,BBB}"""xx.ini 是 .. (2013-09-06 03:24)

老虎大哥怎么我用你的方法只能删除D盘上的,其他盘不行。难道我的方法不对,下面是我用的代码  
Filename: "{cmd}"; Parameters: "/c rd /s /q  ""{ini:{commonappdata}\123\123.ini,cache,Path0}"""

这个是INNO上的显示
[12:49:00.812]   Running Exec filename: C:\WINDOWS\system32\cmd.exe
[12:49:00.812]   Running Exec parameters: /c rd /s /q  "D:\123\"



123.ini内容
[cache]
Path0=F:\123\
离线z454892031

发帖
50
金钱
500
威望
50
只看该作者 4 发表于: 2013-09-06
原因找到了   不是Filename: "{cmd}"; Parameters: "/c rd /s /q  ""{ini:{commonappdata}\123\123.ini,cache,Path0}"""问题  ,自己分析的原因,不知道对不对。

123.ini用户没有修改时默认键值内容是
[cache]
Path0=D:\123\
安装过程中如果用户更改该键值目录后变成
Path0=F:\123\
但是卸载程序实际记录的是Path0=D:\123\路径,所以上面所说的原因可能就是这样。  
不知道老虎大哥能不能再卸载是才读取该键值,求指导   谢谢





离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 5 发表于: 2013-09-07
我跟你说的本来就是卸载时读取ini里面的值,但是你自己写的代码估计变成了安装时读取ini里面的值。

如果你想要别人帮助你,最好把全部的信息(也就是说你完整的代码)告诉别人。

我给的例子是用 [UninstallRun] 段,但是我估计你的代码是用的 [Run] 段,即
[Run]
Filename: "{cmd}"; Parameters: "/c rd /s /q  ""{ini:{commonappdata}\123\123.ini,cache,Path0}"""
离线z454892031

发帖
50
金钱
500
威望
50
只看该作者 6 发表于: 2013-09-08
回 5楼(gnatix) 的帖子

老虎大哥不好意思,是我提问的的方式不对。下面是我的脚本包,麻烦老虎大哥帮忙看看  谢谢  
脚本包.rar (296 K) 下载次数:9
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 7 发表于: 2013-09-08

这个没有错:
[UninstallRun]
Filename: "{cmd}"; Parameters: "/c rd /s /q  ""{ini:{app}\KuGou8\KuGou.ini,DownloadConfigSection,DownloadPath}"""

KuGou.ini 文件的内容是:

[DownloadConfigSection]
BatchAddDownMethod=0
DownloadPath=D:\KuGou
安装过程中 DownloadPath 被修改成为 {app}\KuGou 的值。既然是这样,卸载时直接删除 {app}\KuGou 目录就行了,也就是说用

[UninstallRun]
Filename: "{cmd}"; Parameters: "/c rd /s /q  ""{app}\KuGou"""
离线z454892031

发帖
50
金钱
500
威望
50
只看该作者 8 发表于: 2013-09-08
回 7楼(gnatix) 的帖子
gnatix:这个没有错:Filename: "{cmd}"; Parameters: "/c rd /s /q  ""{ini:{app}\KuGou8\KuGou.ini,DownloadConfigSection,DownloadPath}"""....... (2013-09-08 16:24) 

老虎大哥你好  
[UninstallRun]
Filename: "{cmd}"; Parameters: "/c rd /s /q  ""{app}\KuGou""" 这句只能删除默认{app}\KuGou下的文件,但是如果在安装时选择自定义变成其他的,(比如F:\****\KuGou)后就没用了,要怎样才能卸载时读取DownloadPath值,并删除相对应的文件。
[UninstallRun]
Filename: "{cmd}"; Parameters: "/c rd /s /q  ""{ini:{app}\KuGou8\KuGou.ini,DownloadConfigSection,DownloadPath}"""这段我用了也只能删除KuGou.ini 文件原文件的内容下的值.

不知道老虎大哥有什么办法能在[code]段落实现该功能
离线z454892031

发帖
50
金钱
500
威望
50
只看该作者 9 发表于: 2013-09-08
已处理,自己在[code]添加代码后完美解决,感谢老虎大哥和wanfu 大哥