python得到windows自啟動列表

Cosmop01itan發表於2017-01-01
#!/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()

相關文章