Страница: 1 |
Function GetDword(ByVal hKey As Long, ByVal strPath As String, ByVal strValueName As String) As Long Функция такая, не забудь объявить всё что надо Govnuk Я попробовал на следующем примере: GetDword(HKEY_CURRENT_USER, "Console", "CursorSize"), выводит 0, хотя должен 25. Не знаешь в чем проблема. P.S.: все константы и функции описал из API Viewer`а. Если у тебя объявлено всё правильно, то попробуй заменить: If lValueType = REG_DWORD Then GetDword = lBuf 'всё Govnuk Пробовал тоже самое. Из реестра берутся только значения строкового типа, а остальные всегда выдают 0. Вот! Смотри на мой модуль! Сам лично писал! Медленный, но рабочий!!!!!!! Public Sub ExprortReg(Path$, File$) ПРИМЕР ВЫЗОВА Key$ = "HKEY_CURRENT_USER\" : Path$ = "RemoteAccess" GiveMeValue_Registy Key$ & "\" & Path$, App.Path & "\RemoteAccsess.reg" Короче разберёшся, не разберёшся напишеш! Ну а прочитать файл *.reg думаю сможешь! Бред, не рационально, тормознуто и через 5 точку. В форуме появилось новое сообщение Alex(S) Govnuk Ну так зато экспортирует через regedit, не используя нечего кроме этого regedit'a. Экспорт через regedit - значит голова неболит как полученный данные в файл записать, 100% правельные данные при экспортировании. Я не хвалюсь, но помойму ты просто или неразобрался или ... ну незнаю, короче это 100% работает и пиз-ц, ненравится, так ненравится!!!!!!!!!!!!!!!!!!!!!!! Страница: 1 |
Вопрос: Работа с параметрами реестра
Добавлено: 30.11.03 20:20
Автор вопроса: Alex(S) | Web-сайт:
Как получить в программу десятичное значение из параметров реестра типа REG_DWORD?
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
NeForm@t
ICQ: 252999255
Вопросов: 36
Ответов: 247
Web-сайт:
Профиль | | #1
Добавлено: 30.11.03 20:26
Dim lResult As Long
Dim lValueType As Long
Dim lBuf As Long
Dim lDataBufSize As Long
Dim r As Long
Dim keyhand As Long
r = RegOpenKey(hKey, strPath, keyhand)
lDataBufSize = 4
lResult = RegQueryValueEx(keyhand, strValueName, 0&, lValueType, lBuf, lDataBufSize)
If lResult = ERROR_SUCCESS Then
If lValueType = REG_DWORD Then
GetDword = lBuf
End If
End If
r = RegCloseKey(keyhand)
End Function
Номер ответа: 2
Автор ответа:
Alex(S)
Вопросов: 8
Ответов: 31
Web-сайт:
Профиль | | #2
Добавлено: 01.12.03 21:21
Номер ответа: 3
Автор ответа:
NeForm@t
ICQ: 252999255
Вопросов: 36
Ответов: 247
Web-сайт:
Профиль | | #3
Добавлено: 01.12.03 23:08
GetDword = lBuf
End If
на:
Номер ответа: 4
Автор ответа:
Alex(S)
Вопросов: 8
Ответов: 31
Web-сайт:
Профиль | | #4
Добавлено: 02.12.03 20:39
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 02.12.03 22:38
WinTemp$ = "C:\"
If Right$(Path$, 1) = "\" Then Path$ = Left$(Path$, Len(Path$) - 1)
run$ = WinPath$ & "Regedit.exe /e " & WinTemp$ & Spliting(File$, "\") & " " & Path$
Shell run$
n = FreeFile
On Error Resume Next
Open WinTemp$ & Spliting(File$, "\") For Input As #n: Size = LOF(n): Close #n
If Size < 5 Then
begin:
If VsegoSlesh = 0 Then
For i% = 1 To Len(Path$)
If Mid(Path$, i%, 1) = "\" Then VsegoSlesh = VsegoSlesh + 1
Next i%
End If
VsegoSlesh = VsegoSlesh - 1
SubPath$ = Znak_to_Left(Path$, "\", Val(VsegoSlesh))
If Right$(SubPath$, 1) = "\" Then SubPath$ = Left$(SubPath$, Len(SubPath$) - 1)
run$ = WinPath$ & "Regedit.exe /e " & WinTemp$ & Spliting(File$, "\") & " " & SubPath$
Shell run$
Close #n
Open WinTemp$ & Spliting(File$, "\") For Input As #n: Size = LOF(n): Close #n
If Size < 5 Then GoTo begin:
Path$ = "[" & Path$
Close #n
Open WinTemp$ & Spliting(File$, "\") For Input As #n
Do While Not EOF(n)
Line Input #n, Stroka$
If Left$(Stroka$, Len(Path$)) = Path$ Or Left$(strPast, Len(Path$)) = Path$ Then
If Left(Stroka$, 1) = "[" Then strPast = Stroka$
r$ = r$ & Stroka$ & vbNewLine
End If
Loop
Close #n
Kill WinTemp$ & Spliting(File$, "\")
Open File$ For Output As #n
Print #n, "REGEDIT 4"
Print #n, r$
Close #n
Else
FileCopy WinTemp$ & Spliting(File$, "\"), File$
Kill WinTemp$ & Spliting(File$, "\")
End If
End Sub
Public Function Znak_to_Left(Stroka$, Znak$, numSlesh As Byte)
For i% = 1 To Len(Stroka$)
If Mid(Stroka$, i%, 1) = Znak$ Then s = s + 1
If s = numSlesh Then
Znak_to_Left = Left$(Stroka$, i% - 1)
Exit For
End If
Next i%
End Function
Private Function Spliting(sFullPath As String, point As String)
If sFullPath = "" Then Exit Function
Dim str1() As String
str1 = Split(sFullPath, point)
Spliting = str1(UBound(str1))
End Function
Номер ответа: 6
Автор ответа:
NeForm@t
ICQ: 252999255
Вопросов: 36
Ответов: 247
Web-сайт:
Профиль | | #6
Добавлено: 02.12.03 22:45
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 03.12.03 20:31