Проблема с реестром...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dredina
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 5
Зарегистрирован: 16.06.2006 (Пт) 22:37

Проблема с реестром...

Сообщение Dredina » 16.06.2006 (Пт) 22:51

При обычном изменении значения етого ключа (Его тип: REG_DWORD)
он меняет свой тип.
Код: Выделить всё
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr


Но мне в рукми попал такой код:
Код: Выделить всё
Private Sub Command1_Click()
On Error Resume Next
Dim A As New WshShell
A.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr", 1, RegDword
End Sub


Но он не изменяет значения, но и ошибки не показует...

Помогите мне пожалуста, может есть алтернатива етому коду?
Люди, которым всегда некогда, как правило, ничего не делают.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 16.06.2006 (Пт) 23:46

Возможно не изменяет. потому что не прав администратора.
Подпись проходит рефакторинг

Dredina
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 5
Зарегистрирован: 16.06.2006 (Пт) 22:37

Сообщение Dredina » 17.06.2006 (Сб) 0:41

Да не написано что я админ :?
Люди, которым всегда некогда, как правило, ничего не делают.

ACiD
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 261
Зарегистрирован: 10.12.2005 (Сб) 2:29
Откуда: г. Санкт - Петербург

Сообщение ACiD » 17.06.2006 (Сб) 1:32

А может быть так:
Код: Выделить всё
'Registry keys
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 HKEY_PERFORMANCE_DATA = &H80000004
Private Const HKEY_CURRENT_CONFIG = &H80000005
Private Const HKEY_DYN_DATA = &H80000006

'Registry access constants
Private Const KEY_QUERY_VALUE = &H1 'Permission to query subkey data.
Private Const KEY_SET_VALUE = &H2 'Permission to set subkey data.
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_NOTIFY = &H10
Private Const KEY_CREATE_LINK = &H20
Private Const KEY_READ = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
Private Const KEY_WRITE = KEY_SET_VALUE Or KEY_CREATE_SUB_KEY
Private Const KEY_ALL_ACCESS = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_SUB_KEY Or KEY_CREATE_LINK Or KEY_SET_VALUE

Private Const REG_OPTION_NON_VOLATILE = 0&
Private Const REG_OPTION_VOLATILE = &H1

Private Type SECURITY_ATTRIBUTES
      nLength As Long
      lpSecurityDescriptor As Long
      bInheritHandle As Long
End Type

Public Enum RegTypes
      RegNonee = 0
      RegSZ = 1
      RegExpandSz = 2
      RegBinary = 3
      RegDword = 4
      RegDwordLittleEndian = 4
      RegDwordBigEndian = 5
      RegLink = 6
      RegMultiSz = 7
      RegResourceList = 8
      RegFulResourceDesc = 9
End Enum

Private 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

Private Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal szData As String, ByVal cbData As Long) As Long

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

Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal szData As String, ByRef lpcbData As Long) As Long

Private 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, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long

Public Function RegGetValue(Root As Long, SubKey As String, Key As String) As String
      Dim Buffer As String, hKey As Long, nType As Long, nSize As Long
      RegGetValue = ""
      If Not RegOpenKeyEx(Root, SubKey, 0, KEY_READ, hKey) Then
            nSize = 0
            RegQueryValueEx hKey, Key, 0, nType, Buffer, nSize
            If hKey And nSize > 0 And nType = RegSZ Then
                  Buffer = Space(nSize + 1)
                  RegQueryValueEx hKey, Key, 0, nType, Buffer, nSize
                  RegGetValue = Left(Buffer, nSize - 1)
                  RegCloseKey hKey
            End If
      End If
End Function

Public Sub RegSetValue(Root As Long, SubKey As String, Key As String, value As String)
      Dim hKey As Long, sa As SECURITY_ATTRIBUTES, nDisp As Long
      If Not RegCreateKeyEx(Root, SubKey, 0, vbNull, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, sa, hKey, nDisp) Then
            RegSetValueEx hKey, Key, 0, RegSZ, value, Len(value) + 1
            RegCloseKey hKey
      End If
End Sub


чтобы получить:
Код: Выделить всё
RegGetValue(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\run", "nwiz")

чтобы отправить:
RegSetValue HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\run", "Yoi", "blabla"

Dredina
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 5
Зарегистрирован: 16.06.2006 (Пт) 22:37

Сообщение Dredina » 17.06.2006 (Сб) 13:07

Не не получаеться... ругаеться на библеотеки!
Люди, которым всегда некогда, как правило, ничего не делают.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.06.2006 (Сб) 13:23

Ввиду очевидной родственности http://bbs.vbstreets.ru/viewtopic.php?t=26334, тема закрывается.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50

    TopList