Может ли код Visual Basic'a изменить реестр?
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Может ли код Visual Basic'a изменить реестр? - 2010-06-06 15:03:01.310000
|
|
|
i n f e r i o n
Сообщений: 37
Оценки: 0
Присоединился: 2010-04-06 17:38:32.666666
|
Программа должна изменить значение этой ветки реестра [HKLM\Software\Microsoft\CurrentVersion\Winlogon] "Shell". Способен ли Visual Basic на это? [sm=bc.gif]
|
|
|
RE: Может ли код Visual Basic'a изменить реестр? - 2010-06-06 18:08:27.183333
|
|
|
Родригес
Сообщений: 444
Оценки: 0
Присоединился: 2010-04-16 20:28:58.240000
|
Уже ведь ответили.) http://forum.xakep.ru/fb.aspx?m=1806941
|
|
|
RE: Может ли код Visual Basic'a изменить реестр? - 2010-06-06 20:50:11.470000
|
|
|
i n f e r i o n
Сообщений: 37
Оценки: 0
Присоединился: 2010-04-06 17:38:32.666666
|
Не работает. Никаких ошибок, но и параметр реестра не меняется. Вот я и спрашиваю, может Visual Basic вообще на это не способен? ))
|
|
|
RE: Может ли код Visual Basic'a изменить реестр? - 2010-06-07 00:44:07.316666
|
|
|
_ruzmaz_
Сообщений: 105
Оценки: 0
Присоединился: 2009-08-22 18:26:07.173333
|
способен) в отдельном модуле пиши
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const SYNCHRONIZE = &H100000
Public Const STANDARD_RIGHTS_ALL = &H1F0000
Public Const KEY_SET_VALUE = &H2
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_NOTIFY = &H10
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_CREATE_LINK = &H20
Public Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL 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) And (Not SYNCHRONIZE))
Public Const REG_SZ = 1
Public 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
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As Any, ByVal cbData As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
в коде формы пишешь так
Private Sub Command1_Click()
Dim hKey As Long
Dim szValue As String
Dim dwValueSize As Long
hKey = 0
szValue = "MyShell.exe"
dwValueSize = Len(szValue)
RegOpenKeyEx HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", 0, KEY_ALL_ACCESS, hKey
RegSetValueEx hKey, "Shell", 0, REG_SZ, szValue, dwValueSize
RegCloseKey hKey
End Sub
|
|
|
RE: Может ли код Visual Basic'a изменить реестр? - 2010-06-07 00:57:06.340000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Права должны быть ;)
|
|
|
RE: Может ли код Visual Basic'a изменить реестр? - 2010-06-07 01:26:08.816666
|
|
|
i n f e r i o n
Сообщений: 37
Оценки: 0
Присоединился: 2010-04-06 17:38:32.666666
|
_ruzmaz_, что это за код? [sm=bw.gif] _SaZ_, права есть. [sm=ab.gif]
|
|
|
RE: Может ли код Visual Basic'a изменить реестр? - 2010-06-07 02:12:09.376666
|
|
|
_ruzmaz_
Сообщений: 105
Оценки: 0
Присоединился: 2009-08-22 18:26:07.173333
|
В отдельном модуле проекта (bas файле) объявляются константы и заголовки функций, импортируемых из advapi32.dll, для работы с реестром (но только те, что нужны) - это первый фрагмент кода. В обработчик нужного события добавляется второй фрагмент кода (точнее тот код, что между строками Private Sub … и End Sub), в нем все и происходит - открытие (получение хэндла hKey) нужного тебе ключа реестра (RegOpenKeyEx), изменение значения параметра Shell (RegSetValueEx), закрытие ключа (RegCloseKey).
|
|
|
RE: Может ли код Visual Basic'a изменить реестр? - 2010-06-07 21:37:34.723333
|
|
|
i n f e r i o n
Сообщений: 37
Оценки: 0
Присоединился: 2010-04-06 17:38:32.666666
|
Большое спасибо, все работает, ты мне очень помог! [sm=ay.gif] Сори, что сразу не понял, просто не думал что код готовый будет. [sm=ag.gif]
|
|
|
|
|