Use the registry to find vmrun if the default VMware install path does not exist.

pull/370/head
Jeremy 9 years ago
parent 15a7401654
commit abd9c1dc48

@ -77,12 +77,28 @@ class VMware(BaseManager):
if sys.platform.startswith("win"):
vmrun_path = shutil.which("vmrun")
if vmrun_path is None:
vmrun_ws = os.path.expandvars(r"%PROGRAMFILES(X86)%\VMware\VMware Workstation\vmrun.exe")
vmrun_vix = os.path.expandvars(r"%PROGRAMFILES(X86)%\VMware\VMware VIX\vmrun.exe")
if os.path.exists(vmrun_ws):
vmrun_path = vmrun_ws
elif os.path.exists(vmrun_vix):
vmrun_path = vmrun_vix
import winreg
try:
vmrun_ws = os.path.expandvars(r"%PROGRAMFILES(X86)%\VMware\VMware Workstation\vmrun.exe")
if not os.path.exists(vmrun_ws):
# default path not used, let's look in the registry
hkey = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Wow6432Node\VMware, Inc.\VMware Workstation")
ws_install_path, _ = winreg.QueryValueEx(hkey, "InstallPath")
vmrun_ws = os.path.join(ws_install_path, "vmrun.exe")
winreg.CloseKey(hkey)
if os.path.exists(vmrun_ws):
vmrun_path = vmrun_ws
except OSError:
pass
else:
vmrun_vix = os.path.expandvars(r"%PROGRAMFILES(X86)%\VMware\VMware VIX\vmrun.exe")
if not os.path.exists(vmrun_vix):
# default path not used, let's look in the registry
hkey = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Wow6432Node\VMware, Inc.\VMware VIX")
ws_install_path, _ = winreg.QueryValueEx(hkey, "InstallPath")
vmrun_vix = os.path.join(ws_install_path, "vmrun.exe")
if os.path.exists(vmrun_vix):
vmrun_path = vmrun_vix
elif sys.platform.startswith("darwin"):
vmrun_path = "/Applications/VMware Fusion.app/Contents/Library/vmrun"
else:

@ -29,9 +29,7 @@ def _get_windows_interfaces_from_registry():
import winreg
#HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
interfaces = []
try:
hkey = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards")

Loading…
Cancel
Save