Python获取Windows自启动列表的完整实现
本文介绍如何使用Python获取Windows系统的自启动程序列表。通过调用内置的winreg模块读取注册表中的HKLM和HKCU路径,并结合os模块遍历当前用户的启动文件夹,最终整合输出本地机器与当前用户维度的自启动项详情。
具体实现代码如下所示:
#!/usr/bin/python
#-*-coding:utf-8-*-
import _winreg as wr #导入内置的windows注册表操作库
import os
from socket import *
import getpass
def GetStart():
key = r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
aRegL = wr.ConnectRegistry(None,wr.HKEY_LOCAL_MACHINE)
aRegC = wr.ConnectRegistry(None,wr.HKEY_CURRENT_USER)#getpass.getuser()为得到当前的用户名
startdir = os.listdir(r'C:\Users'+ os.sep + getpass.getuser() + r'\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup')
startExe = {'localmachine':[],'currentuser':[]}
startExe['startdir'] = startdir
try:
aKeyL = wr.OpenKey(aRegL,key)#打开键,返回句柄
aKeyC = wr.OpenKey(aRegC,key)
for i in range(1024):
try:
startExe['localmachine'].append( wr.EnumValue(aKeyL,i))
except:
break #异常就是终点,退出循环
for i in range(1024):
try:
startExe['currentuser'].append( wr.EnumValue(aKeyC,i))
except:
break
finally:
wr.CloseKey(aKeyL)
wr.CloseKey(aKeyC)
return startExe
def main():
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
start = GetStart() #这个函数返回一个字典
print 'LocalMachine'.center(50,'*')
for i in start['localmachine']:#迭代字典中的数据
print i
print 'CurrentUser'.center(50,'*')
for i in start['currentuser']:
print i
print 'StartUp dir'.center(50,'*')
for i in start['startdir']:
print i
if __name__== "__main__":
main()
以上关于使用Python获取Windows自启动列表的方法分享完毕,希望能为读者提供有效的参考,同时也欢迎大家继续支持本站获取更多技术内容。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













