Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Запись в реестр в XP... Добавлено: 31.01.04 15:48  

Автор вопроса:  NovichoK

Налобал я такую процедуру которая читает раздел реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

Const ERROR_NO_MORE_ITEMS = 259&
Const HKEY_LOCAL_MACHINE = &H80000002

Const KEY_ENUMERATE_SUB_KEYS = &H8
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 RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As Long
Public Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Public RegCount As Byte

Public Sub CheckExistance()
Dim hKey As Long, Cnt As Long, ParametrName As String, Value As String, LengthOfParametr As Long, LengthOfValue As Long
Dim Reg As Object
Const BUFFER_SIZE As Long = 255
LengthOfParametr = BUFFER_SIZE
RegCount = 0
    'Open a registry key
    If RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", 0, KEY_ENUMERATE_SUB_KEYS, hKey) = 0 Then
        'initialize
        ParametrName = Space(BUFFER_SIZE)
        Value = Space(BUFFER_SIZE)
        LengthOfParametr = BUFFER_SIZE
        LengthOfValue = BUFFER_SIZE
        'enumerate the values
        Do While RegEnumValue(hKey, Cnt, ParametrName, LengthOfParametr, 0, ByVal 0&, ByVal Value, LengthOfValue) <> ERROR_NO_MORE_ITEMS
            'show data
            If LengthOfValue > 0 Then
            'prepare for next value
            If StrComp(Left(ParametrName, LengthOfParametr), App.EXEName & ".exe", vbTextCompare) = 0 And StrComp(Left(Value, LengthOfValue - 1), App.Path + "\" + App.EXEName + ".exe", vbTextCompare) = 0 Then
               RegCount = RegCount + 1
            End If
            End If
            Cnt = Cnt + 1
            ParametrName = Space(BUFFER_SIZE)
            Value = Space(BUFFER_SIZE)
            LengthOfParametr = BUFFER_SIZE
            LengthOfValue = BUFFER_SIZE
        Loop
        'Close the registry key
        RegCloseKey hKey
    Else
        MsgBox "Error while operating RegOpenKeyEx"
    End If

End Sub

Так в 98 без проблем пашет, а  XP  -не хочет, почему, в чем секрет откройте глаза на истину..:)

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 NeForm@t



ICQ: 252999255 

Вопросов: 36
Ответов: 247
 Web-сайт: g--k.newmail.ru
 Профиль | | #1
Добавлено: 31.01.04 23:23

хеех, ты что под своим компом в юзерах? ха-ха

пиши в HKCR

Ответить

Номер ответа: 2
Автор ответа:
 NovichoK



Вопросов: 72
Ответов: 147
 Профиль | | #2 Добавлено: 01.02.04 17:50

Да нет не в юзерах...ну да ладно я свой ключ создал уже...так что спасибо всем кто так мне помагал...:)..

Странно, что никто не разбирался с записью в реестр с-под ВБ...когда я задаю вопросы на эту тему они тупо игнорируются...

  

Ответить

Номер ответа: 3
Автор ответа:
 NeForm@t



ICQ: 252999255 

Вопросов: 36
Ответов: 247
 Web-сайт: g--k.newmail.ru
 Профиль | | #3
Добавлено: 02.02.04 00:19

почему никто не работал, я во всех своих прогах активно юзая реестрб просто вопросы ламерские вот никто и не хочет отвечать, посмотри в библии кодов

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам