用Python怎样查看系统启动项的方法源码

1.#-*- coding: UTF-8 -*-

3.import string                           
4.# 导入所需要的模块   
5.from win32api import *   
6.from win32con import *   
7.def GetValues(fullname):       
8.#  GetValues函数用于获得某注册表项下所有的项值   
9.  name=string.split(fullname, '\\', 1)    
10.#  把完整的项拆分成根项和子项两部分   
11.# 打开相应的项,为了让该函数更通用   
12.# 使用了多个判断语句   
13.  if name[0] == 'HKEY_LOCAL_MACHINE':   
14.    key = RegOpenKey(HKEY_LOCAL_MACHINE, name[1], 0, KEY_READ)   
15.    elif name[0] == 'HKEY_CURRENT_USER':   
16.        key = RegOpenKey(HKEY_CURRENT_USER, name[1], 0, KEY_READ)   
17.        elif name[0] == 'HKEY_CLASSES_ROOT':   
18.            key = RegOpenKey(HKEY_CLASSES_ROOT, name[1], 0, KEY_READ)   
19.            elif name[0] == 'HKEY_CURRENT_CONFIG':   
20.                key = RegOpenKey(HKEY_CURRENT_CONFIG, name[1], 0, KEY_READ)   
21.                elif name[0] == 'HKEY_USERS':   
22.                    key = RegOpenKey(HKEY_USERS, name[1], 0, KEY_READ)   
23.                    else:   
24.                        print 'err,no key named %s' (name[0])  info = RegQueryInfoKey(key)        
25.                         # 查询项的项值数目   
26.                         # 遍历项值获得项值数据   
27.                         for i in range(0, info[1]):   
28.                             ValueName = RegEnumValue(key, i)   
29.                             print string.ljust(ValueName[0], 20), ValueName[1]    
30.                             # 调整项值名称长度,使输出更好看RegCloseKey(key)                    
31.                             # 关闭打开的项# 因为GetValues函数比较通用,所以可以在其他脚本中调用   
32.                             # 这里先检查脚本是否被其他脚本调用          
33.                             if _name_ == '_main_':    
34.                               # 因为要检查的项较多,故将其放在列表中,便于增减     
35. #www.iplaypy.com          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']   
36.                                 for KeyName in KeyNames:                           
37.                                     # 遍历列表,调用GetValues函数, 输出项值   
38.                                     print KeyName   
39.                                     GetValues(KeyName)