Windows Реестр DWORD возвращает -1 на GetValue - PullRequest
0 голосов
/ 01 мая 2020

Во-первых, извинения, если это дубликат - я не могу поверить, что мне нужно задать этот вопрос первым, но я просто не могу найти существующий ответ (здесь или в Google).

Я пытаюсь прочитать значение записи в реестре, используя следующий код VB. Net (простите за любое шонкое форматирование и магический номер c; это всего лишь быстрый и грязный тестовый код):

Module modMain

    Private Const REG_KEY As String = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters"
    Private Const REG_VALUE As String = "FileSizeLimitInBytes"

    Sub Main()

        Dim strReturn As String = ""
        Dim lngNumBytes As Long = 0

        strReturn = My.Computer.Registry.GetValue(REG_KEY, REG_VALUE, "-99")
        Console.WriteLine("Bytes: " & strReturn.ToString())
        Console.WriteLine("Current registry value: " & (CDbl(strReturn) / 1048576).ToString() & " (MB)")
        Console.ReadKey()

    End Sub

End Module

Вывод выглядит следующим образом:

Байт: -1

Текущее значение реестра: -9.5367431640625E-07 (МБ)

Я попытался получить значение DWORD для других записей в этом ключе, и все они возвращаются правильно. Единственное отличие состоит в том, что значение в этом случае очень большое: 4 294 967 295 (остальные значения DWORD находятся в диапазоне от 0 до 1 000 000). Я пытался использовать различные типы данных, чтобы принять возвращаемое значение (Int64, Int32, Double, Long и Object), но все они либо полностью отказывают, либо возвращают -1.

Что я делаю неправильно?

Спасибо.

...