X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bindings%2Fpython-ctypes%2Fheader.py;h=4f4c870ade32bebe6f3215c1745387a7bffc5056;hb=e23c4d69faf2003599f01b366fc64e1c006c34ea;hp=e81c6f8fdcef805254eeeab1f5cf2d2c2fc49e00;hpb=10d4cfc5e783c59263bfde04157b81300751167b;p=vlc diff --git a/bindings/python-ctypes/header.py b/bindings/python-ctypes/header.py index e81c6f8fdc..4f4c870ade 100755 --- a/bindings/python-ctypes/header.py +++ b/bindings/python-ctypes/header.py @@ -46,11 +46,26 @@ elif sys.platform == 'win32': plugin_path=None path=ctypes.util.find_library('libvlc.dll') if path is None: - # Try a standard location. - p='c:\\Program Files\\VideoLAN\\VLC\\libvlc.dll' - if os.path.exists(p): - plugin_path=os.path.dirname(p) - os.chdir(plugin_path) + # Try to use registry settings + import _winreg + plugin_path_found = None + subkey, name = 'Software\\VideoLAN\\VLC','InstallDir' + for hkey in _winreg.HKEY_LOCAL_MACHINE, _winreg.HKEY_CURRENT_USER: + try: + reg = _winreg.OpenKey(hkey, subkey) + plugin_path_found, type_id = _winreg.QueryValueEx(reg, name) + _winreg.CloseKey(reg) + break + except _winreg.error: + pass + if plugin_path_found: + plugin_path = plugin_path_found + else: + # Try a standard location. + p='c:\\Program Files\\VideoLAN\\VLC\\libvlc.dll' + if os.path.exists(p): + plugin_path=os.path.dirname(p) + os.chdir(plugin_path) # If chdir failed, this will not work and raise an exception path='libvlc.dll' else: