Muszę odczytać lokalizację folderu Temporary ASP.NET Files z VBScript w ramach zadania poinstalacyjnego w instalatorze utworzonym przy użyciu projektu wdrażania programu Visual Studio 2008.Jak odczytać 64-bitowe wartości rejestru z VBScript działającego jako zadanie poinstalacyjne msi?
pomyślałem, żeby zrobić coś takiego:
Set oShell = CreateObject("Wscript.Shell")
strPath = oShell.RegRead("HKLM\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0\Path")
a następnie złączyć strPath z "\ Temporary ASP.NET Files" i być z nim zrobić.
W systemie x64 otrzymuję wartość z węzła WOW6432Node (HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ ASP.NET \ 2.0.50727.0), co daje mi 32-bitową ścieżkę do struktury (C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727), ale w systemie x64 faktycznie potrzebuję ścieżki 64-bitowej, tj. C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727.
Rozumiem, że tak się dzieje, ponieważ plik .vbs jest uruchamiany przy użyciu 32-bitowego hosta skryptów, ponieważ proces macierzysty (instalator) jest 32-bitowy.
Jak mogę uruchomić skrypt za pomocą 64-bitowego hosta skryptu - lub - jak mogę odczytać wartości 64-bitowe, nawet jeśli skrypt jest uruchamiany przy użyciu 32-bitowego hosta skryptu?
Jak to zrobić, ale tylko w celu sprawdzenia klucza, a nie wartość ?? (Przykład: zobacz, czy "SOFTWARE \ Microsoft \ ASP.NET \ 2.0.50727.0" istnieje, ale nie wartość "Ścieżka" –
@ DaniellePaquette-Harvey: Musisz wywołać ['EnumKey'] (http://msdn.microsoft. com/en-us/library/aa390387.aspx) zamiast 'GetStringValue' (z odpowiednimi parametrami) i sprawdź czy' oOutParams.ReturnValue' to 0. Zobacz także odpowiedzi w tym pytaniu: [Sprawdź, czy istnieje klucz rejestru] (http : //stackoverflow.com/q/9604276/113116). – Helen