查看系统启动项

#-*- coding: UTF-8 -*- 
#  file: AutoRuns.py
#import string                        
# 导入所需要的模块
from win32api import *
from win32con import *
def GetValues(fullname):    
#  GetValues函数用于获得某注册表项下所有的项值
  name=string.split(fullname, '\\', 1) 
#  把完整的项拆分成根项和子项两部分
# 打开相应的项,为了让该函数更通用
# 使用了多个判断语句
  if name[0] == 'HKEY_LOCAL_MACHINE':
    key = RegOpenKey(HKEY_LOCAL_MACHINE, name[1], 0, KEY_READ)
    elif name[0] == 'HKEY_CURRENT_USER':
        key = RegOpenKey(HKEY_CURRENT_USER, name[1], 0, KEY_READ)
        elif name[0] == 'HKEY_CLASSES_ROOT':
            key = RegOpenKey(HKEY_CLASSES_ROOT, name[1], 0, KEY_READ)
            elif name[0] == 'HKEY_CURRENT_CONFIG':
                key = RegOpenKey(HKEY_CURRENT_CONFIG, name[1], 0, KEY_READ)
                elif name[0] == 'HKEY_USERS':
                    key = RegOpenKey(HKEY_USERS, name[1], 0, KEY_READ)
                    else:
                        print 'err,no key named %s' (name[0])  info = RegQueryInfoKey(key)     
                         # 查询项的项值数目
                         # 遍历项值获得项值数据
                         for i in range(0, info[1]):
                             ValueName = RegEnumValue(key, i)
                             print string.ljust(ValueName[0], 20), ValueName[1] 
                             # 调整项值名称长度,使输出更好看RegCloseKey(key)                 
                             # 关闭打开的项# 因为GetValues函数比较通用,所以可以在其他脚本中调用
                             # 这里先检查脚本是否被其他脚本调用       
                             if _name_ == '_main_': 
                                 # 因为要检查的项较多,故将其放在列表中,便于增减  
                                 KeyNames = ['HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run', 'HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\  RunOnce', 'HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\  RunOnceEx', 'HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run', 'HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\  RunOnce']
                                 for KeyName in KeyNames:                        
                                     # 遍历列表,调用GetValues函数, 输出项值
                                     print KeyName
                                     GetValues(KeyName) 

 

你可能感兴趣的:(windows,Microsoft,脚本)