Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Работа с параметрами реестра Добавлено: 30.11.03 20:20  

Автор вопроса:  Alex(S) | Web-сайт: sapr7.by.ru
Как получить в программу десятичное значение из параметров реестра типа REG_DWORD?

Ответить

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

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



ICQ: 252999255 

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

Function GetDword(ByVal hKey As Long, ByVal strPath As String, ByVal strValueName As String) As Long
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

Функция такая, не забудь объявить всё что надо

Govnuk

Ответить

Номер ответа: 2
Автор ответа:
 Alex(S)



Вопросов: 8
Ответов: 31
 Web-сайт: sapr7.by.ru
 Профиль | | #2
Добавлено: 01.12.03 21:21

Я попробовал на следующем примере: GetDword(HKEY_CURRENT_USER, "Console", "CursorSize"), выводит 0, хотя должен 25. Не знаешь в чем проблема.

P.S.: все константы и функции описал из API Viewer`а.

Ответить

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



ICQ: 252999255 

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

Если у тебя объявлено всё правильно, то попробуй заменить:

If lValueType = REG_DWORD Then
GetDword = lBuf
End If
на:

GetDword = lBuf

'всё

Govnuk

Ответить

Номер ответа: 4
Автор ответа:
 Alex(S)



Вопросов: 8
Ответов: 31
 Web-сайт: sapr7.by.ru
 Профиль | | #4
Добавлено: 02.12.03 20:39

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

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 02.12.03 22:38

Вот! Смотри на мой модуль! Сам лично писал! Медленный, но рабочий!!!!!!!

Public Sub ExprortReg(Path$, File$)
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

ПРИМЕР ВЫЗОВА

Key$ = "HKEY_CURRENT_USER\" : Path$ = "RemoteAccess"

GiveMeValue_Registy Key$ & "\" & Path$, App.Path & "\RemoteAccsess.reg"

 

Короче разберёшся, не разберёшся напишеш!

Ну а прочитать файл *.reg думаю сможешь!

 

Ответить

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



ICQ: 252999255 

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

Бред, не рационально, тормознуто и через 5 точку.

В форуме появилось новое сообщение Alex(S)

Govnuk

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 03.12.03 20:31

Ну так зато экспортирует через regedit, не используя нечего кроме этого regedit'a. Экспорт через regedit - значит голова неболит как полученный данные в файл записать, 100% правельные данные при экспортировании. Я не хвалюсь, но помойму ты просто или неразобрался или ... ну незнаю, короче это 100% работает и пиз-ц, ненравится, так ненравится!!!!!!!!!!!!!!!!!!!!!!!

Ответить

Страница: 1 |

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



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