论坛首页
论坛首页 开发者论坛 PortableApps开发 怎样清理注册表run下的一个键值?

怎样清理注册表run下的一个键值?

讨论关于便携软件开发的技术与问题,包括PAL、NSIS、VMware ThinApp及其他。
pbphoo 红心可鉴
红心可鉴

帖子: 53
还是昨天提问的那个Qvod的制作,这是原帖http://forum.portableappc.com/viewtopic.php?f=8&t=1039

这是提取出来的注册表文件:

代码: 全选
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"QvodTerminal"="\"H:\\便携软件制作\\QvodPlayerPortable\\App\\QvodPlayer\\QvodTerminal.exe\" -autorun"


怎样在便携软件中处理这个啊??

jooseng 革命同志
革命同志

帖子: 3474
[RegistryKeys]
-=HKLM\Software\Microsoft\Windows\CurrentVersion\Run


拜托,以后发贴发到正确的版块。

pbphoo 红心可鉴
红心可鉴

帖子: 53
额……不好意思,知道了

jooseng 革命同志
革命同志

帖子: 3474
比较好的处理法:

[RegistryValueBackupDelete]
1=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\QvodTerminal

pbphoo 红心可鉴
红心可鉴

帖子: 53
请原谅我照抄原文并且还是看不明白:

代码: 全选
[RegistryValueBackupDelete]
Key names are consecutive integers, starting at 1 (i.e. 1, 2, 3, etc.)

These are registry values which get backed up before hand and restored later, but any value which may have been set while the portable application is running will be deleted. This can be useful for “dead” values which serve no purpose and so there is no point in saving them anywhere.

Example: 1=HKCU\Software\Publisher\AppName\Value


[RegistryValueBackupDelete]
这些注册表键值在被传递前备份并随后被恢复,但是若干在便携软件运行时设置的键值将被删除,保存这些注册表键值是没有意义的,这对以那些“没有用”的键值的处理是很有用的。

…………以上我大概理了下该死的机器翻译,但是仍然不明白到底是什么意思??求解释??

jooseng 革命同志
革命同志

帖子: 3474
pbphoo 写道:
请原谅我照抄原文并且还是看不明白:

代码: 全选
[RegistryValueBackupDelete]
Key names are consecutive integers, starting at 1 (i.e. 1, 2, 3, etc.)

These are registry values which get backed up before hand and restored later, but any value which may have been set while the portable application is running will be deleted. This can be useful for “dead” values which serve no purpose and so there is no point in saving them anywhere.

Example: 1=HKCU\Software\Publisher\AppName\Value


[RegistryValueBackupDelete]
这些注册表键值在被传递前备份并随后被恢复,但是若干在便携软件运行时设置的键值将被删除,保存这些注册表键值是没有意义的,这对以那些“没有用”的键值的处理是很有用的。

…………以上我大概理了下该死的机器翻译,但是仍然不明白到底是什么意思??求解释??

系统上原有的注册表键值(如有)会在便携版运行前备份起来,便携版退出后恢复。
便携版运行时所写入的将在退出后被删除,也不会导出。

例如这是系统上原有的:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"AppName"="C:\\Program Files\\xxx\\AppName.exe"

便携版运行前备份到(其实是移动,确实的命名方式我忘了):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run_backup by AppNamePortable]
"AppName"="C:\\Program Files\\xxx\\AppName.exe"

便携版运行时,使用的家伙去设置开机启动。结果便携版软件写入:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"AppName"="X:\\PortableApps\\xxx\\AppNamePortable.exe"

不过这个键值会在便携版退出后被删除,而之前备份的会被恢复。

注:
以上的例子用[RegistryValueBackupDelete]写法是:
1=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\AppName


回到 PortableApps开发