powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получение информации о размере журнала безопасности удаленного ПК средствами VB
18 сообщений из 18, страница 1 из 1
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37811016
furiousangel256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, доброе время суток.

Возникла необходимость сбора информации о размере журналов безопасности на n-ном (примерно 300-500) количестве компьютеров в сети. На локальном ПК эта информации (о размере журнала безопасности) хранится в этой ветке реестра : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security , параметр содержащий значение : MaxSize

С локального компьютера информацию об этой ветке реестра можно получить таким образом :

Код: sql
1.
2.
3.
4.
5.
6.
7.
Sub security_size()

Set WSHShell = CreateObject("WScript.Shell")

MsgBox (WSHShell.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security\MaxSize"))

End Sub



Но как это сделать для удаленного ПК - не представляю...

Собственно вопрос - каким образом, средствами VB, эту информацию можно достать из реестра удаленного ПК ?

Или, быть может, существует какой-либо другой способ получить информацию о размере журнала безопсности чужого ПК (не обращаясь к его реестру) ?
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37811612
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegConnectRegistry
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37812078
furiousangel256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy - благодарю за то, что подсказал в каком направлении копать. Получилась вот что :


"Объявление функций/констант для работы с удаленным реестром"
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const HKEY_CURRENT_USER = &H80000001
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const HKEY_USERS = &H80000003

Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_SET_VALUE = &H2
Private Const KEY_ALL_ACCESS = &H3F

Private Const REG_SZ  As Long = 1
Private Const ERROR_SUCCESS = 0&

Private Declare Function RegConnectRegistry Lib "advapi32.dll" _
Alias "RegConnectRegistryA" _
    (ByVal lpMachineName As String, _
     ByVal hKey As Long, _
     phkResult As Long) As Long

Private Declare Function RegCloseKey Lib "advapi32.dll" _
    (ByVal hKey As Long) As Long

Private Declare Function RegOpenKeyEx Lib "advapi32.dll" _
Alias "RegOpenKeyExA" _
    (ByVal hKey As Long, _
     ByVal lpSubKey As String, _
     ByVal ulOptions As Long, _
     ByVal samDesired As Long, _
     phkResult As Long) As Long
   
Private Declare Function RegQueryValueExString Lib "advapi32.dll" _
Alias "RegQueryValueExA" _
    (ByVal hKey As Long, _
     ByVal lpValueName As String, _
     ByVal lpReserved As Long, _
     lpType As Long, _
     ByVal lpData As String, _
     lpcbData As Long) As Long




"Процедура получения значения параметра из ветки удаленного реестра"
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Sub Registry()
    
    Dim hRemoteReg As Long
    Dim lRet As Variant
    Dim lRetVal As Long
    Dim hKey As Long
    Dim sValue As String
        
    lRet = RegConnectRegistry("\\172.19.23.114", _
                              HKEY_LOCAL_MACHINE, _
                              hRemoteReg)
        
        lRetVal = RegOpenKeyEx(hRemoteReg, _
        "SYSTEM\CurrentControlSet\Services\Eventlog\Security", 0, KEY_QUERY_VALUE, hKey)
    If lRetVal <> ERROR_SUCCESS Then
        MsgBox "Cannot open key"
    Else
        sValue = String(255, " ")
        lRetVal = RegQueryValueExString(hKey, _
            "file", 0&, REG_SZ, sValue, 255)
        If lRetVal <> ERROR_SUCCESS Then
            MsgBox "Cannot query value"
        Else
            MsgBox sValue
        End If
        lRetVal = RegCloseKey(hKey)
        If lRetVal <> ERROR_SUCCESS Then
            MsgBox "Cannot close key"
        End If
    End If

End Sub




Если запустить эту процедуру, то она выводит на экран значение параметра file в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security , то есть директорию, в которой хранится журнал безопасности Windows. В той же ветке реестра есть параметр MaxSize - он-то и содержит информацию, которая мне необходима (заданный размер журнала безопасности)! Но с помощью этой процедуры я не могу получить значение этого параметра. Когда я пытаюсь получить значение параметра MaxSize с помощью этой процедуры - в переменную sValue (в неё записывается значение параметра во время выполнения функции RegQueryValueExString) записывается какая-то билибирда (смотрю через Debug -> Add Wath). Странно.

Обратил внимание, что параметры реестра типа "REG_SZ" (т.е. строковые) выгружаются вполне себе корректно, а вот "REG_DWORD" (32-ти битные, числовые) выдают какую-то кракозябру.

Нет ли мыслей - почему?
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37812109
furiousangel256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, в строке lRet = RegConnectRegistry("\\172.19.23.114", HKEY_LOCAL_MACHINE, hRemoteReg) в качестве ПК, к реестру которого подключаюсь - указываю IP своей ПК. Т.е. если кто-то захочет запустить процедуру у себя - айпишник нужно поменять на твой (или прописать туда имя компа).
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37812160
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
furiousangel256а вот "REG_DWORD" (32-ти битные, числовые) выдают какую-то кракозябру.

Нет ли мыслей - почему?
А по подробнее? Кракозябры разные бывают
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37812268
furiousangel256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, конечно.

Если подоброее - выглядит это так :

При получении значения типа REG_SZ всё вроде бы проходит гладко. В переменную sValue записывается значение параметра file из это ветки реестра, потом значение переменной отображается на экране через msgbox.

При получении значения типа REG_DWORD всё иначе. Функция получения инфы из реестра отрабатывает, в переменную sValue что-то записывается, но что - непонятно. И то, что туда записалось - не хочет выводиться в msgbox, через дебагер тоже непонятно что такое записалось в переменную...

В общем это я и называю кракозяброй =/
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37812330
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что dword это числовой, а не текстовый тип.
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37812332
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: furiousangel256
> В общем это я и называю кракозяброй =/

Ты путаешь кислое с красным :)
Кракозяблы - это неправильная кодировка текста, а то что ты показываешь - это непечатаемые символы у которых есть код.
Получить его можно с помощью Asc(символ).

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37812365
furiousangel256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyПотому что dword это числовой, а не текстовый тип.

Логично. Но если мы сделаем так :

Код: sql
1.
2.
3.
4.
    Dim a As Integer
    Dim b As String
    a = 2*3
    b = a



то переменной b присвоится значение "6" и никаких проблем не будет

вот я и не могу понять - почему этого не происходит сейчас? и главное - что с этим делать?

Игорь Горбонос
Ты путаешь кислое с красным :) Кракозяблы - это неправильная кодировка текста, а то что ты показываешь - это непечатаемые символы у которых есть код. Получить его можно с помощью Asc(символ).



Разобрал получившееся значение с помощью функции asc, получилось, что первые 4 символа имеют код 0, а все оставшиеся (их много) имеют код 32 (это, по-моему, пробел)
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37812462
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
furiousangel256AntonariyПотому что dword это числовой, а не текстовый тип.

Логично. Но если мы сделаем так :

Код: sql
1.
2.
3.
4.
    Dim a As Integer
    Dim b As String
    a = 2*3
    b = a



то переменной b присвоится значение "6" и никаких проблем не будетКак все запущено.

Мне сейчас некогда объяснять подробно. Просто копируй из реестра в числовую переменную, а не текстовую, а потом делай b = a и никаких проблем не будет.
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37814484
furiousangel256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Antonariy]furiousangel256пропущено...
Просто копируй из реестра в числовую переменную, а не текстовую, а потом делай b = a и никаких проблем не будет.

Я пробовал сделать это первым же делом.

Когда я беру из реестра переменную типа REG_DWORD (32-битное числовое значение) и копирую в переменную типа Integer - то ничего не происходит. Значение переменной в VB не изменяется. Как был 0 - так и остался 0. Сдаётся мне, что работать с числовыми переменными в реестре нужно как-то по-другому =/
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37814676
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Long нужно, а не Integer.
И исходный код вместо этого вашего "ничего не происходит".
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37814833
furiousangel256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

long я тоже пробовал

А код не сильно отличается от того, что указан выше :

+
=Код

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const HKEY_CURRENT_USER = &H80000001
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const HKEY_USERS = &H80000003

Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_SET_VALUE = &H2
Private Const KEY_ALL_ACCESS = &H3F

Private Const REG_SZ  As Long = 1
Private Const REG_DWORD  As Long = 4
Private Const ERROR_SUCCESS = 0&

Private Declare Function RegConnectRegistry Lib "advapi32.dll" _
Alias "RegConnectRegistryA" _
    (ByVal lpMachineName As String, _
     ByVal hKey As Long, _
     phkResult As Long) As Long

Private Declare Function RegCloseKey Lib "advapi32.dll" _
    (ByVal hKey As Long) As Long

Private Declare Function RegOpenKeyEx Lib "advapi32.dll" _
Alias "RegOpenKeyExA" _
    (ByVal hKey As Long, _
     ByVal lpSubKey As String, _
     ByVal ulOptions As Long, _
     ByVal samDesired As Long, _
     phkResult As Long) As Long
   
Private Declare Function RegQueryValueExString Lib "advapi32.dll" _
Alias "RegQueryValueExA" _
    (ByVal hKey As Long, _
     ByVal lpValueName As String, _
     ByVal lpReserved As Long, _
     lpType As Long, _
     ByVal lpData As String, _
     lpcbData As Long) As Long

Sub Registry()
    
    Dim hRemoteReg As Long
    Dim lRet As Variant
    Dim lRetVal As Long
    Dim hKey As Long
    Dim sValue As Long

    lRet = RegConnectRegistry("\\127.0.0.1", _
                              HKEY_LOCAL_MACHINE, _
                              hRemoteReg)
        
        lRetVal = RegOpenKeyEx(hRemoteReg, _
        "SYSTEM\CurrentControlSet\Services\Eventlog\Security", 0, KEY_QUERY_VALUE, hKey)
    If lRetVal <> ERROR_SUCCESS Then
        MsgBox "Cannot open key"
    Else
        lRetVal = RegQueryValueExString(hKey, _
            "MaxSize", 0&, REG_DWORD, sValue, 255)
        If lRetVal <> ERROR_SUCCESS Then
            MsgBox "Cannot query value"
        Else
            MsgBox sValue
        End If
        lRetVal = RegCloseKey(hKey)
        If lRetVal <> ERROR_SUCCESS Then
            MsgBox "Cannot close key"
        End If
    End If

End Sub



Модератор: для правильного отображения кода надо писать SRC VBA, а не просто SRC
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37814968
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на rsdn нашёл первый же пример:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
Option Explicit

Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" ( _
     ByVal hKey As Long, _
     ByVal lpValueName As String, _
     ByVal lpReserved As Long, _
     ByRef lpType As Long, _
     ByRef lpData As Any, _
     ByRef lpcbData As Long) As Long
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" ( _
     ByVal hKey As Long, _
     ByVal lpSubKey As String, _
     ByVal ulOptions As Long, _
     ByVal samDesired As Long, _
     ByRef phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" ( _
     ByVal hKey As Long) As Long


Private Const READ_CONTROL As Long = &H20000
Private Const STANDARD_RIGHTS_READ As Long = (READ_CONTROL)
Private Const KEY_QUERY_VALUE As Long = &H1
Private Const KEY_ENUMERATE_SUB_KEYS As Long = &H8
Private Const KEY_NOTIFY As Long = &H10
Private Const SYNCHRONIZE As Long = &H100000

Private Const HKEY_CURRENT_USER As Long = &H80000001


Private Const KEY_READ As Long = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))
Private Const REG_SZ As Long = 1
Private Const REG_DWORD As Long = 4

' Для проверки.
Public Sub Main()
    Dim objShell As Object
    Dim lKey As Long
    Dim sMsg As String
    
    Set objShell = VBA.CreateObject("WScript.Shell")
    
    objShell.RegWrite "HKEY_CURRENT_USER\Software\ACME\FortuneTeller\", 555, "REG_DWORD"
    objShell.RegWrite "HKEY_CURRENT_USER\Software\ACME\FortuneTeller\MindReader", "Goocher!", "REG_SZ"
     
    lKey = GetDword("Software\ACME\FortuneTeller\", "")
    sMsg = GetString("Software\ACME\FortuneTeller\", "MindReader")
    MsgBox sMsg & vbNewLine & lKey
    
    
    lKey = objShell.RegRead("HKCU\Software\ACME\FortuneTeller\")
    sMsg = objShell.RegRead("HKCU\Software\ACME\FortuneTeller\MindReader")
    MsgBox sMsg & vbNewLine & lKey 
    
    objShell.RegDelete "HKEY_CURRENT_USER\Software\ACME\FortuneTeller\MindReader"
    objShell.RegDelete "HKEY_CURRENT_USER\Software\ACME\FortuneTeller\"
    objShell.RegDelete "HKEY_CURRENT_USER\Software\ACME\"
End Sub



'1. Нафик всё по-ссылке передавать?
'2. Нафик передавать hKey, если ты его там затираешь открываемым и закрываешь?
'3. rtn - не объявлена.
Function GetDword(ByVal strPath As String, ByVal strValue As String) As Long
    'А почему strData типа long? Врагов запутать хочешь? :-)
    Dim dwData As Long
    Dim hKey As Long
    Dim rtn As Long
        
    ' Ошибку не отлавливаем по идейным соображениям или по лени?
    
    rtn = RegOpenKeyEx(HKEY_CURRENT_USER, strPath, 0&, KEY_READ, hKey)
    If rtn <> 0& Then Err.Raise &H80070000 Or rtn
    
    rtn = RegQueryValueEx(hKey, strValue, 0&, REG_DWORD, dwData, 4&)
    If rtn <> 0& Then Err.Raise &H80070000 Or rtn
    
    rtn = RegCloseKey(hKey)
    If rtn <> 0& Then Err.Raise &H80070000 Or rtn
    
    GetDword = dwData
Exit Function
catch:
    If hKey <> 0& Then
        RegCloseKey hKey
    End If
    
    ' Это на скорую руку сделано. Надо делать НЕтак!!!
    ' Нужно в первую очередь в переменную сохранять данные об ошибке и из неё брать их потом.
    With Err
        .Raise .Number, .Source, .Description, .HelpFile, .HelpContext
    End With
End Function

'1. Нафик всё по-ссылке передавать?
' и т.д.
Function GetString(ByVal strPath As String, ByVal strValue As String) As String
    Dim hKey As Long
    Dim rtn As Long
    Dim strData As String
    Dim dwLen As Long
    Dim i As Long

    rtn = RegOpenKeyEx(HKEY_CURRENT_USER, strPath, 0&, KEY_READ, hKey)
    If rtn <> 0& Then Err.Raise &H80070000 Or rtn
    
    rtn = RegQueryValueEx(hKey, strValue, 0&, REG_SZ, ByVal 0&, dwLen)
    If rtn <> 0& Then Err.Raise &H80070000 Or rtn
        
    strData = String$(dwLen - 1, vbNullChar)
    
    rtn = RegQueryValueEx(hKey, strValue, 0&, REG_SZ, ByVal strData, dwLen)
    If rtn <> 0& Then Err.Raise &H80070000 Or rtn
          
    rtn = RegCloseKey(hKey)
    If rtn <> 0& Then Err.Raise &H80070000 Or rtn
    
    ' Зачем? А вдруг пользователь специально пробелы ввёл, а ты ему их обрезаешь.
    strData = Trim(strData)
    GetString = strData
Exit Function
catch:
    If hKey <> 0& Then
        RegCloseKey hKey
    End If
        
    ' Это на скорую руку сделано. Надо делать НЕтак!!!
    ' Нужно в первую очередь в переменную сохранять данные об ошибке и из неё брать их потом.
    With Err
        .Raise .Number, .Source, .Description, .HelpFile, .HelpContext
    End With
End Function
 

...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37815014
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
furiousangel256Antonariy,

long я тоже пробовал

А код не сильно отличается от того, что указан выше : Ну и где там long?
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37815764
furiousangel256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy, не понял вопрос... Переменная sValue у меня объявляется как переменная типа long

Код: vbnet
1.
Dim sValue As Long



В теле процедуры она объявляется последней по счёту.
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37816081
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А функция объявлена с lpData As String.
...
Рейтинг: 0 / 0
Получение информации о размере журнала безопасности удаленного ПК средствами VB
    #37816767
furiousangel256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посыпаю голову пеплом. Я и забыл про то, как я функцию объявлял... Разумеется в этом и было всё дело.

Теперь ЭТО работает! :-)

Примного благодарен всем, кто оказывал мне помощь в решении проблемы (Antonariy - Вам, разумеется, благодарен больше всех).

На тот случай, если кто-нибудь столкнётся с такой же проблемой - вот код, который позволяет получить информацию о размере журнала безопасности Windows (да и вообще любого журнала - разница лишь в том, в какой ветке реестра его смотреть)

Код
[src vba]
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const HKEY_CURRENT_USER = &H80000001
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const HKEY_USERS = &H80000003

Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_SET_VALUE = &H2
Private Const KEY_ALL_ACCESS = &H3F

Private Const REG_SZ As Long = 1
Private Const REG_DWORD As Long = 4
Private Const ERROR_SUCCESS = 0&

Private Declare Function RegConnectRegistry Lib "advapi32.dll" _
Alias "RegConnectRegistryA" _
(ByVal lpMachineName As String, _
ByVal hKey As Long, _
phkResult As Long) As Long

Private Declare Function RegCloseKey Lib "advapi32.dll" _
(ByVal hKey As Long) As Long

Private Declare Function RegOpenKeyEx Lib "advapi32.dll" _
Alias "RegOpenKeyExA" _
(ByVal hKey As Long, _
ByVal lpSubKey As String, _
ByVal ulOptions As Long, _
ByVal samDesired As Long, _
phkResult As Long) As Long

Private Declare Function RegQueryValueExString Lib "advapi32.dll" _
Alias "RegQueryValueExA" _
(ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal lpReserved As Long, _
ByRef lpType As Long, _
ByRef lpData As Long, _
ByRef lpcbData As Long) As Long

Sub Registry()

Dim hRemoteReg As Long
Dim lRet As Variant
Dim lRetVal As Long
Dim hKey As Long
Dim sValue As Long

lRet = RegConnectRegistry("\\127.0.0.1", _
HKEY_LOCAL_MACHINE, _
hRemoteReg)

lRetVal = RegOpenKeyEx(hRemoteReg, _
"SYSTEM\CurrentControlSet\Services\Eventlog\Security", 0, KEY_QUERY_VALUE, hKey)
If lRetVal <> ERROR_SUCCESS Then
MsgBox "Cannot open key"
Else
lRetVal = RegQueryValueExString(hKey, _
"MaxSize", 0&, REG_DWORD, sValue, 255)
If lRetVal <> ERROR_SUCCESS Then
MsgBox "Cannot query value"
Else
MsgBox sValue
End If
lRetVal = RegCloseKey(hKey)
If lRetVal <> ERROR_SUCCESS Then
MsgBox "Cannot close key"
End If
End If

End Sub


[src vba]
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получение информации о размере журнала безопасности удаленного ПК средствами VB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]