예제 #1
0
 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
예제 #2
0
    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)
예제 #3
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)))
예제 #4
0
 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('')
예제 #5
0
    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
예제 #6
0
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
예제 #7
0
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
예제 #8
0
파일: winrun.py 프로젝트: CERTCC/certfuzz
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)
예제 #9
0
    # 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
예제 #10
0
    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