powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проверка существует ли значение в реестре
25 сообщений из 65, страница 1 из 3
Проверка существует ли значение в реестре
    #38853115
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые профессионалы!
Хочу в проекте проверять есть ли в реестре определенная папка со значением. Например в разделе HKEY_LOCAL_MACHINE\SOFTWARE создаю папку test, в которой создаю строковый параметр test
Прочитал что для этого можно использовать метод - GetValue объекта My.Computer.Registry
В качестве примера указали вот это:
Код: vbnet
1.
2.
3.
If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\TestApp","TestValue", Nothing) Is Nothing Then
  MsgBox("Value does not exist.")
End If


Но когда тестирую код, выводит ошибку - "Необходим объект" и подсвечивает первую строку.
Попробовал сделать так:-
Код: vbnet
1.
2.
3.
If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\test","test", Nothing) Is Nothing Then
  MsgBox("Value does not exist.")
End If


Все равно - необходим объект
Укажите пожалуйста в чем промах
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853121
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronУкажите пожалуйста в чем промахв выборе форума для вопроса

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853132
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,
Пока писал в ту ветку, в которой вопрос не должен был быть - тему уже переместили :-)

Наверное, имеет смысл для начала проверить наличие папки test в реестре, а потом уже и значение извлекать.
Что-то вроде:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Dim SubKey As Object,readValue As Object
SubKey  = My.Computer.Registry.LocalMachine.OpenSubKey ("Software\test", True)
If not My.Computer.Registry.LocalMachine.OpenSubKey ("Software\test", True) is nothing then
readValue = My.Computer.Registry.LocalMachine.GetValue("FontColor","test", Nothing)
if not readValue is nothing then
    MsgBox("Value does not exist.")
end if
end if
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853137
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Почему же? Этот вопрос именно по Visual Basic.
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853163
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronShocker.Pro,

Почему же? Этот вопрос именно по Visual Basic.потому что надо читать ПРАВИЛА ФОРУМА. Прочтите перед тем как задавать вопрос! перед тем, как задавать вопрос
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853213
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

Папка test с параметром test создана в
vdekameronHKEY_LOCAL_MACHINE\SOFTWARE
пробую ваш код:-
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Dim SubKey As Object,readValue As Object
SubKey  = My.Computer.Registry.LocalMachine.OpenSubKey ("Software\test", True)
If not My.Computer.Registry.LocalMachine.OpenSubKey ("Software\test", True) is nothing then
readValue = My.Computer.Registry.LocalMachine.GetValue("FontColor","test", Nothing)
if not readValue is nothing then
    MsgBox("Value does not exist.")
end if
end if


Ошибка- необходим объект((
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853214
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronЭтот вопрос именно по Visual BasicVB и VB.Net - разные вещи. Поэтому и разделы разные. Ваш топик перенесли в нужную ветку, в которой именно Net обсуждается.
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853218
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_PristVB и VB.Net - разные вещи. Поэтому и разделы разные. Ваш топик перенесли в нужную ветку, в которой именно Net обсуждается.
Уже понял, извините. Но все-равно не получается. Отписал выше(
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853223
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
Dim SubKey As Object,readValue As Object
SubKey  = My.Computer.Registry.LocalMachine.OpenSubKey ("Software\test", True)
If SubKey is nothing then
readValue = My.Computer.Registry.LocalMachine.GetValue("Software\test","test", Nothing)
if not readValue is nothing then
    MsgBox("Value does not exist.")
end if
end if
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853224
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Специально проверил - код выше работает. Никаких объектов не требует. Может редактор подсвечивает какое-то определенное свойство?
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853227
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее так даже:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
        Dim SubKey As Object, readValue As Object
        SubKey = My.Computer.Registry.LocalMachine.OpenSubKey("Software\test", True)
        If Not SubKey Is Nothing Then
            readValue = My.Computer.Registry.LocalMachine.GetValue("Software\test", "test", Nothing)
            If Not readValue Is Nothing Then
                MsgBox("Value does not exist.")
            End If
        End If
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853272
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

Вот что у меня получается.
Ошибка -Необходим объект и подсвечивается вторая строка
Код: vbnet
1.
SubKey = My.Computer.Registry.LocalMachine.OpenSubKey("Software\test", True)


Сделал скрин. Извините что низкого качества.
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853280
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"SOFTWARE\test"
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853286
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronThe_PristVB и VB.Net - разные вещи. Поэтому и разделы разные. Ваш топик перенесли в нужную ветку, в которой именно Net обсуждается.
Уже понял , извините. Но все-равно не получается. Отписал выше(

Что именно понял? Судя по скрину, вы пытаетесь этот код использовать в Visual Basic

Я же дал ссылку на правила , но вы все равно не удосужились прочитать даже самую крупную и жирную строчку
Magnus23 Не забывайте указывать в своих темах среду разработки, к которой относится ваш вопрос!

Приведенный код - для VB.NET, вы бы сразу получили ответ, что вы пытаетесь использовать не тот язык, если бы указали, где вы пытаетесь его использовать
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853287
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

забирай ТС назад.
Он не ошибся форумом.

vdekameron,

то что ты пишешь My.Computer.Registry -это .Net коды и в VB6 они работать не будут.
В VB6 -то что ты хочешь - только API.
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853292
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что за бред тут ТС пишет, код выаолняет в средстве просмотра фотографий.

вам VBA видимо нужно, тогда ищите примеры для него через WinAPI
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853294
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Shocker.Pro,

забирай ТС назад."Фарш невозможно провернуть назад,
И мясо из котлет не восстановишь..."
(на мотив песни "Старинные Часы")

Это теперь только местный модератор может сделать

Дим, просто дай ему правильный ответ, ну или ссылку )
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853302
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На. Декларации и константы выписывать лень, учись сам.


Код: 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.
Public Function IsRegistryKeyExists(ByVal hKey As Long, ByVal lpszSubKey As String, _
 Optional ByVal reg64 As Boolean = False) As Boolean
  Dim dwRes As Long
  Dim phkResult As Long
  
  If reg64 Then
    dwRes = RegOpenKeyEx(hKey, lpszSubKey, 0, KEY_QUERY_VALUE Or KEY_WOW64_64KEY, phkResult)
  Else
    dwRes = RegOpenKeyEx(hKey, lpszSubKey, 0, KEY_QUERY_VALUE, phkResult)
  End If
  If dwRes <> ERROR_FILE_NOT_FOUND Then IsRegistryKeyExists = True
  If phkResult <> 0 Then RegCloseKey phkResult
End Function

Public Function IsRegistryValueExists(ByVal hKey As Long, ByVal lpszSubKey As String, _
 ByVal szValueName As String, _
 Optional ByRef lpType As Long, Optional ByRef szValue As String = "", _
 Optional ByVal reg64 As Boolean = False) As Boolean
  'возвращает True если Value существует в реестре
  'lptype -возвращает тип Value (если существует)
  'szValue -возвращает значение Value (если существует и REG_SZ)
 
  Dim dwRes As Long
  Dim phkResult As Long
  Dim wIndex As Long
  Dim cchValue As Long
  Dim achValue As String
  
  'Open the key
  If reg64 Then
    dwRes = RegOpenKeyEx(hKey, lpszSubKey, 0, KEY_QUERY_VALUE Or KEY_WOW64_64KEY, phkResult)
  Else
    dwRes = RegOpenKeyEx(hKey, lpszSubKey, 0, KEY_QUERY_VALUE, phkResult)
  End If
  If dwRes <> ERROR_SUCCESS Then
    'Debug.Print "RegOpenKeyEx Error " & RaiseAPIErrorByNumber(dwRes)
    Exit Function
  End If
  
  wIndex = 0
  achValue = String(MAX_VALUE_NAME, 0)
  Do
    cchValue = MAX_VALUE_NAME
    'запрос только имени Value
    dwRes = RegEnumValue(phkResult, wIndex, achValue, cchValue, 0, lpType, vbNullString, 0)
    If dwRes = ERROR_NO_MORE_ITEMS Then
      Exit Do
    ElseIf dwRes <> ERROR_SUCCESS Then
      'Debug.Print "RegEnumValue Error " & RaiseAPIErrorByNumber(dwRes)
      Exit Do
    End If
    
    If UCase(Left(achValue, cchValue)) = UCase(szValueName) Then
      IsRegistryValueExists = True
      If lpType = REG_SZ Then 'для REG_SZ требуем значение
        Dim lpcbData As Long
        'запрос длины значения Value
        dwRes = RegEnumValue(phkResult, wIndex, achValue, cchValue, 0, lpType, szValue, lpcbData)
        If dwRes = ERROR_MORE_DATA Then
          'запрос самого значения Value
          szValue = String(lpcbData, 0)
          dwRes = RegEnumValue(phkResult, wIndex, achValue, cchValue, 0, lpType, szValue, lpcbData)
          szValue = Left(szValue, InStr(szValue, Chr(0)) - 1)
        End If
      End If
      Exit Do
    End If
    
    wIndex = wIndex + 1
  Loop
  
  RegCloseKey phkResult
  
End Function
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853321
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в принципе, жалко что ли.

Код: 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.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
Option Explicit

Public Const MAX_VALUE_NAME = 16383

'Registry Constants
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_PERFORMANCE_DATA = &H80000004
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_DYN_DATA = &H80000006

'masks for the predefined standard access types
Public Const ADS_RIGHT_DELETE = &H10000
Public Const ADS_RIGHT_READ_CONTROL = &H20000
Public Const ADS_RIGHT_WRITE_DAC = &H40000
Public Const ADS_RIGHT_WRITE_OWNER = &H80000

Public Const STANDARD_RIGHTS_ALL = &H1F0000
Public Const SPECIFIC_RIGHTS_ALL = &HFFFF
Public Const STANDARD_RIGHTS_READ = ADS_RIGHT_READ_CONTROL
Public Const STANDARD_RIGHTS_WRITE = ADS_RIGHT_READ_CONTROL
Public Const STANDARD_RIGHTS_REQUIRED = _
 ADS_RIGHT_DELETE Or ADS_RIGHT_READ_CONTROL Or ADS_RIGHT_WRITE_DAC Or ADS_RIGHT_WRITE_OWNER

'Registry Specific Access Rights
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_SET_VALUE = &H2
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_CREATE_LINK = &H20
Public Const KEY_READ = &H20019
'(использовалось в модуле от AsProtect, значение совпадает)
'Public Const KEY_READ = KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + ADS_RIGHT_READ_CONTROL
'(msdn, значение совпадает)
'Public Const KEY_READ = STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
'(было использовано в preinstall.exe, значение совпадает)
'Public Const SYNCHRONIZE = &H100000
'Public Const KEY_READ = ((STANDARD_RIGHTS_READ Or _
'                  KEY_QUERY_VALUE Or _
'                  KEY_ENUMERATE_SUB_KEYS Or _
'                  KEY_NOTIFY) And _
'                  (Not SYNCHRONIZE))
Public Const KEY_WRITE = &H20006
'(msdn, значение совпадает)
'Public Const KEY_WRITE = STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY
Public Const KEY_EXECUTE = KEY_READ
'(использовалось во всех моих модулях реестра)
Public Const KEY_ALL_ACCESS = &H3F
'(msdn, значение не совпадает)
'Public Const KEY_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED Or KEY_QUERY_VALUE Or _
'                              KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or _
'                              KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK

'новые ключи для доступа к 64-х битному реестру!
Public Const KEY_WOW64_64KEY = &H100
Public Const KEY_WOW64_32KEY = &H200

'Open/Create Options
Public Const REG_OPTION_NON_VOLATILE = 0& ' Key is preserved when system is rebooted
Public Const REG_OPTION_VOLATILE = &H1
Public Const REG_OPTION_BACKUP_RESTORE = 4

'Key creation/open disposition
Public Const REG_CREATED_NEW_KEY = &H1
Public Const REG_OPENED_EXISTING_KEY = &H2

'Define severity codes
Public Const ERROR_SUCCESS = 0&
Public Const ERROR_FILE_NOT_FOUND = 2
Public Const ERROR_ACCESS_DENIED = 5
Public Const ERROR_INVALID_PARAMETER = 87
Public Const ERROR_INSUFFICIENT_BUFFER = 122&
Public Const ERROR_MORE_DATA = 234
Public Const ERROR_NO_MORE_ITEMS = 259
Public Const ERROR_NOT_ALL_ASSIGNED = 1300

'Predefined Value Types

'No value type
Public Const REG_NONE = (0)
'Unicode nul terminated string
Public Const REG_SZ = (1)
'Unicode nul terminated string w/enviornment var
Public Const REG_EXPAND_SZ = (2)
'Free form binary
Public Const REG_BINARY = (3)
'32-bit number
Public Const REG_DWORD = (4)
'32-bit number (same as REG_DWORD)
Public Const REG_DWORD_LITTLE_ENDIAN = (4)
'32-bit number
Public Const REG_DWORD_BIG_ENDIAN = (5)
'Symbolic Link (unicode)
Public Const REG_LINK = (6)
'Multiple Unicode strings
Public Const REG_MULTI_SZ = (7)
'Resource list in the resource map
Public Const REG_RESOURCE_LIST = (8)
'Resource list in the hardware description
Public Const REG_FULL_RESOURCE_DESCRIPTOR = (9)
Public Const REG_RESOURCE_REQUIREMENTS_LIST = (10)

'Structures Needed For Registry Prototypes
Public Type SECURITY_ATTRIBUTES
  nLength As Long
  lpSecurityDescriptor As Long
  bInheritHandle As Boolean
End Type

'Registry Functions
Public Declare Function RegCloseKey Lib "advapi32" _
 (ByVal hKey As Long) As Long
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegCreateKeyEx Lib "advapi32" Alias _
 "RegCreateKeyExA" (ByVal hKey As Long, ByVal _
 lpSubKey As String, ByVal Reserved As Long, _
 ByVal lpClass As String, ByVal dwOptions As _
 Long, ByVal samDesired As Long, _
 lpSecurityAttributes As SECURITY_ATTRIBUTES, _
 phkResult As Long, lpdwDisposition As Long) As Long
Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias _
 "RegDeleteKeyA" (ByVal hKey As Long, ByVal _
 lpSubKey As String) As Long
Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias _
 "RegDeleteValueA" (ByVal hKey As Long, ByVal _
 lpValueName As String) As Long
Public Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias _
 "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex _
 As Long, ByVal lpName As String, lpcName _
 As Long, ByVal lpReserved As Long, ByVal _
 lpClass As String, lpcClass As Long, _
 lpftLastWriteTime As FILETIME) As Long
Public Declare Function RegEnumValue Lib "advapi32.dll" Alias _
 "RegEnumValueA" (ByVal hKey As Long, ByVal _
 dwIndex As Long, ByVal lpValueName As String, _
 lpcchValueName As Long, ByVal lpReserved As _
 Long, lpType As Long, ByVal lpData As String, _
 lpcbData As Long) As Long
Public Declare Function RegOpenKeyEx Lib "advapi32" Alias _
 "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey _
 As String, ByVal ulOptions As Long, _
 ByVal samDesired As Long, phkResult As Long) As Long
'Public Declare Function RegQueryValueEx Lib "advapi32" Alias _
' "RegQueryValueExA" (ByVal hKey As Long, ByVal _
' lpValueName As String, ByVal lpReserved As Long, _
' ByRef lpType As Long, ByVal lpData As String, _
' ByRef lpcbData As Long) As Long
Public Declare Function RegQueryValueEx& Lib "advapi32" Alias "RegQueryValueExA" ( _
 ByVal hKey&, _
 ByVal lpValueName$, _
 ByVal lpReserved%, _
 Optional lpType&, _
 Optional ByVal lpData$, _
 Optional lpcbData&)
Public Declare Function RegQueryValueExBin Lib "advapi32.dll" Alias _
 "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _
 ByVal lpReserved As Long, lpType As Long, lpData As Any, _
 lpcbData As Long) As Long

Public Const REG_FORCE_RESTORE = 8&

Public Declare Function RegRestoreKey Lib "advapi32.dll" Alias "RegRestoreKeyA" _
 (ByVal hKey As Long, ByVal lpFile As String, ByVal dwFlags As Long) As Long
 
Public Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" _
 (ByVal hKey As Long, ByVal lpFile As String, _
 Optional ByVal lpSecurityAttributes As Long) As Long
 
Public Const REG_STANDARD_FORMAT = 1
Public Const REG_LATEST_FORMAT = 2
Public Const REG_NO_COMPRESSION = 4
 
Public Declare Function RegSaveKeyEx Lib "advapi32.dll" Alias "RegSaveKeyExA" _
 (ByVal hKey As Long, ByVal lpFile As String, _
 ByVal lpSecurityAttributes As Long, ByVal Flags As Long) As Long
 
Public Declare Function RegSetValueEx Lib "advapi32" Alias _
 "RegSetValueExA" (ByVal hKey As Long, ByVal _
 lpValueName As String, ByVal Reserved As Long, _
 ByVal dwType As Long, ByVal lpData As String, _
 ByVal cbData As Long) As Long
Public Declare Function RegSetDWORDValueEx Lib "advapi32" Alias "RegSetValueExA" ( _
 ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, _
 ByVal dwType As Long, lpData As Long, Optional ByVal cbData As Long = 4) As Long
 
'Shell Lightweight Utility Functions
Public Declare Function SHCopyKey Lib "Shlwapi.dll" Alias "SHCopyKeyA" _
 (ByVal hKeySrc As Long, ByVal pszSrcSubKey As String, _
 ByVal hKeyDest As Long, ByVal fReserved As Long) As Long
Public Declare Function SHDeleteKey Lib "Shlwapi.dll" Alias "SHDeleteKeyA" _
 (ByVal hKey As Long, ByVal pszSubkey As String) As Long

...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853354
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,


Shocker.ProCудя по скрину, вы пытаетесь этот код использовать в Visual Basic

Если я изначально создал тему в разделе по Visual Basic ,то таки ДА!! я пытаюсь этот код использовать в Visual Basic
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853362
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий77,

Это пиз...ц Дмитрий, мне чтобы проверить есть ли в Local_Mashine\Software папка test нужно ввести то, что вы последнее скинули?
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853367
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

я тебе дал полный код на VB6 . Другого кода там быть не может.
Можешь еще пытаться читать value и сравнивать с дефолтной.

Код: 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.
'------------------------------------------------------------
'Get the value of the key
'------------------------------------------------------------
Public Function GetRegValue(hKey As Long, lpszSubKey As String, _
 szKey As String, szDefault As String, reg64 As Boolean) As Variant

  On Error GoTo ErrorRoutineErr:

  Dim phkResult As Long
  Dim lResult As Long
  Dim szBuffer As String
  Dim lBuffSize As Long

  'Create Buffer
  'szBuffer = Space(1000)
  'lBuffSize = Len(szBuffer)

  'Open the key
  If reg64 Then
    RegOpenKeyEx hKey, lpszSubKey, 0, 1 Or KEY_WOW64_64KEY, phkResult
  Else
    RegOpenKeyEx hKey, lpszSubKey, 0, 1, phkResult
  End If

  'Query lBuffSize
  'lResult = RegQueryValueEx(phkResult, szKey, 0, 0, 0, lBuffSize)
  lResult = RegQueryValueEx(phkResult, szKey, 0, , , lBuffSize)
  'Debug.Print "lResult=" & lResult & ";lBuffSize=" & lBuffSize
  'If lResult = ERROR_MORE_DATA Then
  If lResult = ERROR_SUCCESS Then
    'Create buffer
    szBuffer = Space(lBuffSize)
    'Query the value
    'lResult = RegQueryValueEx(phkResult, szKey, 0, 0, szBuffer, lBuffSize)
    lResult = RegQueryValueEx(phkResult, szKey, 0, , szBuffer, lBuffSize)
    'Debug.Print "lResult=" & lResult & ";lBuffSize=" & lBuffSize

    'Close the key
    RegCloseKey phkResult

    'Return obtained value
    If lResult = ERROR_SUCCESS Then
      GetRegValue = Left(szBuffer, lBuffSize - 1)
    Else
      GetRegValue = szDefault
    End If
  Else
    'Close the key
    RegCloseKey phkResult
    GetRegValue = szDefault
  End If
  Exit Function

ErrorRoutineErr::
  'MsgBox "ERROR #" & str$(Err) & " : " & Error & Chr(13) _
  '     & "Please exit and try again."
  GetRegValue = ""
End Function

Но первый вариант правильнее.
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853368
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий77,

Вот еще один человек, который меня переоценил на этом форуме. Первый был Shocker.Pro ))
Если это можно просто вставить то другой разговор. но я ни разу не встретил там имя папки - test
Емае)) мне просто нужно проверять есть ли папочка, а кода на 2 ласта)))
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853371
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronЕсли я изначально создал тему в разделе по Visual Basic ,то таки ДА!! я пытаюсь этот код использовать в Visual Basicно при этом, привели код для VB.NET, потому я и перекинул тему.
vdekameronЭто пиз...ц Дмитрий, мне чтобы проверить есть ли в Local_Mashine\Software папка test нужно ввести то, что вы последнее скинули?Да, а, собственно, какая вам разница, что внутри функции, вы же не пытаетесь выяснить, что внутри функции My.Computer.Registry.GetValue. Условно говоря, что-то похожее )
...
Рейтинг: 0 / 0
Проверка существует ли значение в реестре
    #38853378
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,


Shocker.Proно при этом, привели код для VB.NET, потому я и перекинул тему

Полюбуйтесь откуда я взял этот код

Я же руководствуюсь тем, что вы же мне и советовали. Сначала поискать в интернете, почитать, поискать самому. А уж потом отнимать у вас время! Вот поискал, там черным по белому написан заголовок-
"Практическое руководство. Чтение значения из раздела реестра в Visual Basic"
Потестил сам. Не получилось. Написал сюда.
...
Рейтинг: 0 / 0
25 сообщений из 65, страница 1 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проверка существует ли значение в реестре
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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