Welcome, guest | Sign In | My Account | Store | Cart
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)
     

History