В моей системе установлены как 64-разрядная, так и 32-разрядная версия Java в расположениях C:\Program Files\Java\jre1.8.0_191
и C:\Program Files (x86)\Java\jre1.8.0_191
соответственно.
У меня есть следующий код, который выбирает место установки программного обеспечения насистема.
MsgBox fn_getInstallLocation("java")
function fn_getInstallLocation(strApplication)
Dim strKey, objReg, subkey, arrKeys, strRequiredPath
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
strRequiredPath = ""
strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" '<----THIS KEY IS IMPORTANT
set objReg = getObject("winmgmts://./root/default:StdRegProv")
objReg.enumKey HKLM, strKey, arrKeys
for each subkey in arrKeys
objReg.getStringValue HKLM, strKey&subkey, "InstallLocation", strInstallLocation
if InStr(1,strInstallLocation,strApplication,1)>0 Then
strRequiredPath = strInstallLocation
Exit for
End if
next
fn_getInstallLocation = strRequiredPath
End Function
Мои наблюдения:
- При сохранении значения strKey на
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
и запуске вышеуказанного скрипта с использованием 64-битного wscript,Я получаю ожидаемый вывод как C:\Program Files\Java\jre1.8.0_191
. При изменении значения strKey на SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
и выполнении сценария с использованием 64-битного wscript я получаю ожидаемый вывод как C:\Program Files (x86)\Java\jre1.8.0_191
При сохранении значения strKey на SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
ИЛИ SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
и выполнении вышеуказанного сценария с использованием 32-битного wscript, я получаю вывод как C:\Program Files (x86)\Java\jre1.8.0_191
(32-битная Java). Есть ли способ получить место установки 64-битной Java, когда этот скрипт выполняется в 32-битном режиме?
Я НЕ играюсь с разнымиперестановки и комбинации.Я спрашиваю об этом, потому что когда я выполнял этот скрипт на другом компьютере, он не давал мне должных результатов.Спецификации этой машины следующие:
OS: Windows 7 x64
Java: 64 bit(Not 32 bit) - In Registry Editor, it is present in the key - SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
The script ran in 32 bit mode(cannot switch to 64-bit on that machine because I am running this script on a tool - TestComplete which runs in 32-bit mode on all machines. If I do decide to run Test complete in 64-bit mode, there will be architecture mismatch issues with ODBC drivers.)
Поскольку скрипт выполнялся с использованием 32-битного wscript, он не смог вернуть мне путь установки 64-битной JAVA.Итак, есть ли способ заставить это решение работать в 32-разрядном режиме и получить место установки 64-разрядного программного обеспечения?