操作注册表方法及应用
2016-03-25 13:55
316 查看
import _winreg key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run") #获取该键的所有键值,因为没有方法可以获取键值的个数,所以只能用这种方法进行遍历 try: i=0 while True: #EnumValue方法用来枚举键值,EnumKey用来枚举子键 content = _winreg.EnumValue(key,i) i += 1 print content except WindowsError: pass # 如果知道键的名称,也可以直接取值 value = _winreg.QueryValueEx(key,"ABC") print value #创建新的键 newkey = _winreg.CreateKey(key,"hello") #给新创建的键添加页键值 _winreg.SetValueEx(newkey,"HelloNewKey",0,_winreg.REG_SZ,'this is new key content')
#将此脚本添加到注册表启动项
p = "C:\Users\Administrator\Desktop\main.py"
#在启动项中添加程序启动键值对 以及 页值
path = 'python "%s"' % p
print path
env = _winreg.OpenKeyEx(_winreg.HKEY_LOCAL_MACHINE,
"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",
0,
_winreg.KEY_SET_VALUE|_winreg.KEY_READ
)
print env
key = _winreg.EnumKey(env,0)#读取Run下面的第一个键
print key
value = _winreg.EnumValue(env,0)#枚举Run键 下面的第一个页值
print value
value = _winreg.EnumValue(env,1)#枚举Run键 下面的第二个页值
print value
value = _winreg.EnumValue(env,2)#枚举Run键 下面的第三个页值
print value
# value = _winreg.EnumValue(env,3)#枚举Run键 下面的第四个页值 不存在则报错
# print value
#遍历全部的页值如下
name_list = []
try:
i = 0
while True:
name,value,type = _winreg.EnumValue(env,i)#枚举键下的页值
name_list.append(name)
i += 1
print name
except WindowsError:
pass
print name_list
if "Agent" not in name_list:
_winreg.SetValueEx(env,"Agent",0,_winreg.REG_SZ,path)
else:
value = _winreg.QueryValueEx(env,"Agent")
#判断是不是存在此键以及键的内容是否符合正常的
if "Agent" not in name_list:
_winreg.SetValueEx(env,"Agent",0,_winreg.REG_SZ,path)
#获取子键的内容
value = _winreg.QueryValueEx(env,"Agent")
if value != path:
_winreg.SetValueEx(env,"Agent",0,_winreg.REG_SZ,path) #如果存在此key 则会直接修改里面的value
相关文章推荐
- 用注册表文件实现解开被锁定的.reg与inf文件
- 注册表导出管理员密码文件
- 修改注册表实现在桌面上显示Windows版本
- 用注册表清除3389登陆记录的方法
- 常见的注册表修改大全第1/3页
- vbscript 注册表脚本书写
- vbscript Registry 注册表操作实现代码(读写删除)
- vbs 注册表操作代码(添加删除)
- 杀毒除根 巧用注册表防止病毒重新生成
- vbs删除注册表项的代码
- 批处理操作注册表完全攻略(读取注册表/写入注册表等)
- 写给电脑初学者的一些建议(注册表篇)
- CMD下读取/修改/删除注册表项的方法
- C#实现读取注册表监控当前操作系统已安装软件变化的方法
- PowerShell使用Remove-Item命令删除文件、注册表项介绍
- C#通过windows注册表获取软件清单的方法
- 读取注册表根据Office版本获取数据库连接字段
- C#操作注册表的方法详解
- 在DOS方式下对注册表进行操作的代码
- 用vbs操作注册表实例代码