From e23c4d69faf2003599f01b366fc64e1c006c34ea Mon Sep 17 00:00:00 2001 From: Olivier Aubert Date: Mon, 10 Aug 2009 10:07:00 +0200 Subject: [PATCH] python-ctypes: improve win32 initialization (contrib from ) --- bindings/python-ctypes/header.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) 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: -- 2.39.2