if sys.hexversion > 0x03000000:
import winreg
else:
import _winreg as winreg
class Win32Environment:
"""Utility class to get/set windows environment variable"""
def __init__(self, scope):
assert scope in ('user', 'system')
self.scope = scope
if scope == 'user':
self.root = winreg.HKEY_CURRENT_USER
self.subkey = 'Environment'
else:
self.root = winreg.HKEY_LOCAL_MACHINE
self.subkey = r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment'
def getenv(self, name):
key = winreg.OpenKey(self.root, self.subkey, 0, r.KEY_READ)
try:
value, _ = winreg.QueryValueEx(key, name)
except WindowsError:
value = ''
return value
def setenv(self, name, value):
import win32con
from win32gui import SendMessage
assert self.scope == 'user', 'setenv supported only for user env'
key = winreg.OpenKey(self.root, self.subkey, 0, winreg.KEY_ALL_ACCESS)
winreg.SetValueEx(key, name, 0, winreg.REG_EXPAND_SZ, value)
winreg.CloseKey(key)
SendMessage(
win32con.HWND_BROADCAST, win32con.WM_SETTINGCHANGE, 0, self.subkey)
Diff to Previous Revision
--- revision 1 2011-03-22 22:08:16
+++ revision 2 2011-03-22 23:52:05
@@ -1,4 +1,7 @@
-import six
+if sys.hexversion > 0x03000000:
+ import winreg
+else:
+ import _winreg as winreg
class Win32Environment:
"""Utility class to get/set windows environment variable"""
@@ -7,17 +10,16 @@
assert scope in ('user', 'system')
self.scope = scope
if scope == 'user':
- self.root = six.moves.winreg.HKEY_CURRENT_USER
+ self.root = winreg.HKEY_CURRENT_USER
self.subkey = 'Environment'
else:
- self.root = six.moves.winreg.HKEY_LOCAL_MACHINE
+ self.root = winreg.HKEY_LOCAL_MACHINE
self.subkey = r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment'
def getenv(self, name):
- r = six.moves.winreg
- key = r.OpenKey(self.root, self.subkey, 0, r.KEY_READ)
+ key = winreg.OpenKey(self.root, self.subkey, 0, r.KEY_READ)
try:
- value, _ = r.QueryValueEx(key, name)
+ value, _ = winreg.QueryValueEx(key, name)
except WindowsError:
value = ''
return value
@@ -25,11 +27,10 @@
def setenv(self, name, value):
import win32con
from win32gui import SendMessage
- r = six.moves.winreg
assert self.scope == 'user', 'setenv supported only for user env'
- key = r.OpenKey(self.root, self.subkey, 0, r.KEY_ALL_ACCESS)
- r.SetValueEx(key, name, 0, r.REG_EXPAND_SZ, value)
- r.CloseKey(key)
+ key = winreg.OpenKey(self.root, self.subkey, 0, winreg.KEY_ALL_ACCESS)
+ winreg.SetValueEx(key, name, 0, winreg.REG_EXPAND_SZ, value)
+ winreg.CloseKey(key)
SendMessage(
win32con.HWND_BROADCAST, win32con.WM_SETTINGCHANGE, 0, self.subkey)