操作注册表
来源:互联网 发布:淘宝1111和1212 编辑:程序博客网 时间:2024/05/22 08:38
有些程序需要随系统启动,或者需要建立某些文件关联等问题,这些都是通过在安装程序中对注册表进行操作的结果。Inno Setup中通过[registry]段实现对注册表的操作。
本段说明:
参数列表:
参数
说明
Root
根键。必须是下列中的一个:
HKCR (HKEY_CLASSES_ROOT)
HKCU (HKEY_CURRENT_USER)
HKLM (HKEY_LOCAL_MACHINE)
HKU (HKEY_USERS)
HKCC (HKEY_CURRENT_CONFIG)
Subkey
子键名,可以包含常量
ValueType
值类型,必须是下列中的一个:
none
string
expandsz
multisz
dword
binary
如果指定了none (默认设置),安装程序将创建一个没有键值的键,在这种情况下,ValueName 和ValueData 参数将被忽略。
ValueName
要创建的值名,可以包含常量,如果是空白的,将写入到“默认”值
ValueData
值的数据
Permissions
指定登录注册表键ACL (访问控制列表) 的附加权限,该参数只在Windows 2000 或更高版本中有效,可用的参数是full、modify和read
Flags
是额外选项设置。多个选项可以使用空格隔开。支持下面的选项:
createvalueifdoesntexist
deletekey
deletevalue
dontcreatekey
noerror
preservestringtype
uninsclearvalue
uninsdeletekey
uninsdeletekeyifempty
uninsdeletevalue
下面的例子将会使得安装程序在操作系统启动后自动运行。
[setup]
;全局设置,本段必须
AppName=Test
AppVerName=TEST
DefaultDirName="E:\TEST"
AppVersion=1.0
Compression=lzma2/max
ShowLanguageDialog=yes
[components]
Name: main; Description:"主程序(必选)";Types:full compact custom;Flags: fixed
Name: data; Description:"数据文件";Types:full
Name: help;Description:"帮助文件";Types:full compact
[files]
Source: "F:\desktop\test\ipmsg.exe"; DestDir: "{app}";Components:main
Source: "F:\desktop\test\bin.dat"; DestDir: "{app}";Components:data
Source: "F:\desktop\test\help.chm"; DestDir: "{app}" ;Components:help
Source: "F:\desktop\test\readme.txt"; DestDir: "{app}";components:help;Flags:isreadme
[registry]
;本段处理程序在注册表中的键值
Root:HKLM;Subkey:SOFTWARE\Microsoft\Windows\CurrentVersion\Run;ValueType: string; ValueName:TEST;ValueData:{app}\ipmsg.exe;Flags: uninsdeletevalue
一路Next到底,安装完成后可以检查注册表:
确实添加到注册表中去了,通过金山卫士也证实了这一点:
由于使用的标志位是uninsdeletevalue,所以卸载软件将会自动删除该值,如果使用uninsdeletekey的话,该键下的其他值都会被删除,这不是一个很好的方法,除非你确定使用的是自己的专用键,否则不推荐使用。
- 操作注册表
- 注册表操作
- 注册表操作
- 操作注册表
- 注册表操作
- 注册表操作
- 注册表操作
- 注册表操作
- 注册表操作
- 注册表操作
- 注册表操作
- 注册表操作
- 操作注册表
- 注册表操作
- 注册表操作
- 注册表操作
- 注册表操作
- 操作注册表
- 设置mysql字符集[Linux]
- 每天5道面试题(六)java基础
- 动态规划之背包问题(一)
- MySQL索引背后的数据结构及算法原理
- 最大子段和问题
- 操作注册表
- Vmware-桥接模式连接网络
- java 死锁产生原因及解锁
- Linux字符设备驱动程序编译进入内核的方法
- iOS 开发常见的错误提示信息
- LeetCode2.2.2(Reverse Linked List II)
- 线程的join方法
- 双循环链表(C++)
- 设计模式心得