Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Определение ключа в реестре всегда возвращает false (http://forum.oszone.net/showthread.php?t=312263)

dasgespenst 02-03-2016 23:16 2612289

Определение ключа в реестре всегда возвращает false
 
Пробовал разные варианты, но дотнет все равно начинает устанавливаться несмотря на наличие ключа.

Код:

Function RegKeyExists(Key)
  Dim oShell, entry
  On Error Resume Next
 
  Set oShell = CreateObject("WScript.Shell")
  entry = oShell.RegRead(Key)
  If Err.Number <> 0 Then
    Err.Clear
    RegKeyExists = False
  Else
    Err.Clear
    RegKeyExists = True
  End If
End Function

Sub nt51
    If RegKeyExists("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4") Then
    else
        WScript.CreateObject("WScript.Shell").Run ("C:\distr\dotNetFx40_Full_x86_x64.exe /quiet /norestart")
    End if
End Sub

nt51


Iska 03-03-2016 08:34 2612344

Цитата:

Цитата dasgespenst
Пробовал разные варианты, »

А такой:
Код:

If RegKeyExists("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\") Then
?

Ну, а вообще-то правильный путь чуть длиннее:
Практическое руководство.Определение установленных версий платформы .NET Framework
В этой статье приведены сведения о том, как узнать, какие версии и пакеты обновления Microsoft .NET Framework установлены на компьютере

dasgespenst 03-03-2016 11:02 2612384

Теперь работает, я как на reg query запрашивал написал ключ.

dasgespenst 03-03-2016 14:21 2612445

А как правильно написать вот эту строчку?

Код:

Return = WshShell.Run("schtasks /Create /RU " & ""NT AUTHORITY\SYSTEM"" & " /SC ONSTART /TN OpenHardwareMonitor /TR " & sSystemDrive & """\distr\openhardwaremonitor\OpenHardwareMonitor.exe""", 1, true)
Код:

schtasks /Create /RU "NT AUTHORITY\SYSTEM" /SC ONSTART /TN OpenHardwareMonitor /TR %systemdrive%\distr\openhardwaremonitor\OpenHardwareMonitor.exe
sSystemDrive определен.

Iska 03-03-2016 16:34 2612499

Код:

With WshShell
        Return = .Run("""schtasks.exe"" /Create /RU ""NT AUTHORITY\SYSTEM"" /SC ONSTART /TN OpenHardwareMonitor /TR """ & .ExpandEnvironmentStrings("%SystemDrive%") & "\distr\openhardwaremonitor\OpenHardwareMonitor.exe""", 1, True)
End With


dasgespenst 03-03-2016 16:59 2612513

А что означают две двойные кавычки ""?

Iska 03-03-2016 18:14 2612537

Цитата:

Цитата dasgespenst
А что означают две двойные кавычки ""? »

Внутри текстовой строки они означают одну результирующую кавычку.


Время: 21:13.

Время: 21:13.
© OSzone.net 2001-