def getCustomLogDir(self): if platform == 'win32': from _winreg import OpenKey, EnumKey, QueryValueEx, HKEY_LOCAL_MACHINE aKey = OpenKey( HKEY_LOCAL_MACHINE, r"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" ) try: i = 0 while True: asubkey = OpenKey(aKey, EnumKey(aKey, i)) try: if QueryValueEx( asubkey, "Publisher")[0] == "Frontier Developments": custpath = join( QueryValueEx(asubkey, "InstallLocation")[0], "Products") if isdir(custpath): for d in listdir(custpath): if d.startswith("FORC-FDEV-D-1") and isdir( join(custpath, d, "Logs")): asubkey.Close() aKey.Close() return join(custpath, d, "Logs") except: pass asubkey.Close() i += 1 except: aKey.Close() return None
def activate(self, event): self.Unbind(wx.EVT_IDLE) if platform=='win32': from _winreg import OpenKey, QueryValueEx, HKEY_CURRENT_USER, REG_SZ, REG_EXPAND_SZ progs=getenv("PROGRAMFILES", '\\').decode('mbcs') for i in listdir(progs): if i.lower().startswith("x-plane") and isdir(join(progs, i, "Custom Scenery")): folder=join(progs, i) break else: folder=getenv("USERPROFILE", '\\').decode('mbcs') # fallback try: handle=OpenKey(HKEY_CURRENT_USER, 'Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders') (v,t)=QueryValueEx(handle, 'Desktop') handle.Close() if t==REG_EXPAND_SZ: dirs=v.rstrip('\0').decode('mbcs').strip().split('\\') for i in range(len(dirs)): if dirs[i][0]==dirs[i][-1]=='%': dirs[i]=getenv(dirs[i][1:-1],dirs[i]).decode('mbcs') v='\\'.join(dirs) if t in [REG_SZ,REG_EXPAND_SZ] and isdir(v): folder=desktop=v for i in listdir(desktop): if i.lower().startswith("x-plane") and isdir(join(desktop, i, "Custom Scenery")): folder=join(desktop, i) break except: pass else: try: home=expanduser('~').decode(getfilesystemencoding() or 'utf-8') # Unicode so paths listed as unicode desktop=join(home, "Desktop") except: home=desktop=u'/' for i in listdir(desktop): if i.lower().startswith("x-plane") and isdir(join(desktop, i, "Custom Scenery")): folder=join(desktop, i) break else: for i in listdir(home): if i.lower().startswith("x-plane") and isdir(join(home, i, "Custom Scenery")): folder=join(home, i) break else: folder=home if not self.folder: style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER if 'DD_DIR_MUST_EXIST' in dir(wx): style|=wx.DD_DIR_MUST_EXIST if not platform.startswith('linux'): dlg=wx.DirDialog(self.dummy, 'Choose the folder that contains the aircraft or scenery that you want to publish', folder, style) else: # displayed in title on linux dlg=wx.DirDialog(self.dummy, 'Select aircraft or scenery folder', folder, style) if dlg.ShowModal()!=wx.ID_OK: exit(1) self.folder = dlg.GetPath() publish(unicodeify(self.folder), self) exit(0)
def is_at_startup(program_path): '''Add any program to your startup list''' areg = ConnectRegistry(None, HKEY_CURRENT_USER) try: akey = OpenKey(areg, 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\{}'.format(os.path.basename(program_path)), 0, KEY_WRITE) areg.Close() akey.Close() except WindowsError: key = OpenKey(areg, r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 0, KEY_SET_VALUE) SetValueEx(key, '{}'.format(os.path.basename(program_path)), 0, REG_SZ, '{}'.format(program_path)) areg.Close() key.Close() print('{} added to startup'.format(os.path.basename(program_path)))
def __getInstallDir(self): """ Returns the path to where we were installed """ from _winreg import OpenKey, QueryValue, HKEY_LOCAL_MACHINE try: exeKey = None softwareKey = None try: softwareKey = OpenKey(HKEY_LOCAL_MACHINE, 'SOFTWARE') exeKey = OpenKey(softwareKey, 'exe') return Path(QueryValue(exeKey, '')) finally: if exeKey: exeKey.Close() if softwareKey: softwareKey.Close() except WindowsError: return Path('')
def test_close(self): from _winreg import OpenKey, CloseKey, FlushKey, QueryInfoKey key = OpenKey(self.root_key, self.test_key_name) sub_key = OpenKey(key, "sub_key") int_sub_key = int(sub_key) FlushKey(sub_key) CloseKey(sub_key) raises(EnvironmentError, QueryInfoKey, int_sub_key) int_key = int(key) key.Close() raises(EnvironmentError, QueryInfoKey, int_key) key = OpenKey(self.root_key, self.test_key_name) int_key = key.Detach() QueryInfoKey(int_key) # works key.Close() QueryInfoKey(int_key) # still works CloseKey(int_key) raises(EnvironmentError, QueryInfoKey, int_key) # now closed
def getJoyNames(num_devs=15): joy_names = {} for joyId in range(num_devs): # Get device capabilities. caps = JOYCAPS() if joyGetDevCaps(joyId, pointer(caps), CBJCJOYCAPS) != JOYERR_NOERROR: # not connected... continue for f, v in JOYCAPS._fields_: print(f, getattr(caps, f)) # set temp name joy_names[joyId] = "Joystick %i" % (joyId + 1) key = None key2 = None if caps.szRegKey: # Fetch the name from registry. try: key = OpenKey(HKEY_CURRENT_USER, MR % caps.szRegKey) if key: oem = QueryValueEx(key, "Joystick%iOEMName" % (joyId + 1)) print oem if oem: key2 = OpenKey(HKEY_CURRENT_USER, MP % (oem[0])) if key2: oem = QueryValueEx(key2, "OEMName") print oem joy_names[joyId] = oem[0] except: # WindowsError: pass if hasattr(key, "Close"): key.Close() if hasattr(key2, "Close"): key2.Close() print return joy_names
newfsroot=None if platform=='win32': from sys import getwindowsversion sysdesc+="System:\tWindows %s.%s %s\n" % (getwindowsversion()[0], getwindowsversion()[1], getwindowsversion()[4]) from _winreg import OpenKey, QueryValueEx, HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, REG_SZ, REG_EXPAND_SZ progs=getenv("PROGRAMFILES", '\\').decode('mbcs') for i in listdir(progs): if i.lower().startswith("x-plane") and isdir(join(progs, i, "Custom Scenery")): xppath=join(progs, i, "Custom Scenery") break else: xppath=getenv("USERPROFILE", 'C:\\').decode('mbcs') # fallback try: handle=OpenKey(HKEY_CURRENT_USER, 'Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders') (v,t)=QueryValueEx(handle, 'Desktop') handle.Close() if t==REG_EXPAND_SZ: dirs=v.rstrip('\0').decode('mbcs').strip().split('\\') for i in range(len(dirs)): if dirs[i][0]==dirs[i][-1]=='%': dirs[i]=getenv(dirs[i][1:-1],dirs[i]).decode('mbcs') v='\\'.join(dirs) if t in [REG_SZ,REG_EXPAND_SZ] and isdir(v): xppath=desktop=v for i in listdir(desktop): if i.lower().startswith("x-plane") and isdir(join(desktop, i, "Custom Scenery")): xppath=join(desktop, i, "Custom Scenery") break except: pass fspath=lbpath=join(getenv("ProgramFiles").decode('mbcs') or "C:\\Program Files","Microsoft Games","Microsoft Flight Simulator X","Addon Scenery") # fallback
def _set_reg_value(hive=None, branch=None, rname=None, rval=None): k = OpenKey(hive, branch, 0, KEY_ALL_ACCESS) SetValueEx(k, rname, 0, REG_SZ, rval) k.Close() logger.debug('Set registry: %s\%s\%s=%s', hive, branch, rname, rval)
# First try to use the default Windows browser register("windows-default", WindowsDefault) # Detect some common Windows browsers from _winreg import OpenKey, QueryValue, QueryValueEx, EnumKey, HKEY_LOCAL_MACHINE key = None try: winKey = r"SOFTWARE\Microsoft\Windows NT\CurrentVersion" val = r"ProductName" winKey = OpenKey(HKEY_LOCAL_MACHINE, winKey) windows_version = QueryValueEx(winKey, val)[0] #Solo funciona si es Windows 10 if 'Windows 10' in windows_version: register('microsoft-edge', None, MicrosoftEdge()) winKey.Close() key = OpenKey(HKEY_LOCAL_MACHINE, r'SOFTWARE\Clients\StartMenuInternet') i = 0 while True: try: bkey_name = EnumKey(key, i) except: break bkey = OpenKey(key, bkey_name) bpath = QueryValue(bkey, r'shell\open\command') bname = QueryValue(bkey, '') register(bname, None, BackgroundBrowser(bpath.strip('"'))) bkey.Close() i = i + 1
from _winreg import OpenKey, QueryValue, EnumKey, HKEY_LOCAL_MACHINE key = None try: key = OpenKey(HKEY_LOCAL_MACHINE, r'SOFTWARE\Clients\StartMenuInternet') i = 0 while True: try: bkey_name = EnumKey(key, i) except: break bkey = OpenKey(key, bkey_name) bpath = QueryValue(bkey, r'shell\open\command') bname = QueryValue(bkey, '') register(bname, None, BackgroundBrowser(bpath.strip('"'))) bkey.Close() i = i + 1 except: pass finally: if key: key.Close() # # Platform support for MacOS # if sys.platform == 'darwin': # Adapted from patch submitted to SourceForge by Steven J. Burr class MacOSX(BaseBrowser): """Launcher class for Aqua browsers on Mac OS X