欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

查看系统启动项 博客分类: python MicrosoftWindows脚本 

程序员文章站 2024-03-21 16:03:04
...
#-*- 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)