宝宝不想说话,只想上码
'''
添加系统环境变量,即为键Path追加值(路径)
'''
import winreg
import sys
import ctypes
def is_admin():
'''获取管理员权限'''
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
def append_Path(value, type=winreg.REG_EXPAND_SZ, keyname='Path'):
'''默认为键Path追加值(路径)'''
if is_admin():
regRoot = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE)
subDir = r"SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
key_read = winreg.OpenKey(regRoot, subDir)
count = winreg.QueryInfoKey(key_read)[1]
for i in range(count):
name,values,type_ = winreg.EnumValue(key_read, i)
if name.lower() == keyname.lower():
if values[-1] == ';':
values += value
else:
values += f';{value}'
key_write = winreg.OpenKey(regRoot, subDir, 0, winreg.KEY_WRITE)
winreg.SetValueEx(key_write, name, 0, type, values)
winreg.CloseKey(key_write)
winreg.CloseKey(key_read)
else:
if sys.version_info[0] == 3:
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
if __name__ == '__main__':
append_Path('D:\Test')
参考文档
文档1