09. maj 2002 - 23:16 Der er 5 kommentarer og
1 løsning

Henet REG. Værdi

Hej,

Er Vb begrænset til en enkel del af Reg. basen?
MsgBox GetSetting(appname:="HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET EXPLORE\", Section:="MAIN", Key:="Start Page")

Den giver ikke nået, hvordan kan jeg ellers trække den information ud af Reg. Basen?

Tror ikke det kan lade sige gøre?!
//Casper
Avatar billede sjh Nybegynder
10. maj 2002 - 00:05 #1
'---------------------------------- Module1 ----------------------------------
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_DYN_DATA = &H80000006
Public Const REG_SZ = 1
Public Const REG_BINARY = 3
Public Const REG_DWORD = 4
Public Const ERROR_SUCCESS = 0&

Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal HKey As Long) As Long

Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" ( _
                        ByVal HKey As Long, _
                        ByVal lpSubKey As String, _
                        phkResult As Long) As Long

Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" ( _
                        ByVal HKey As Long, ByVal lpValueName As String, _
                        ByVal lpReserved As Long, _
                        lpType As Long, lpData As Any, _
                        lpcbData As Long) As Long

Public Function GetSettingString(ByVal HKey As Long, ByVal strPath As String, ByVal strValue As String, Optional Default As String) As String
Dim hCurKey As Long
Dim lResult As Long
Dim lValueType As Long
Dim strBuffer As String
Dim lDataBufferSize As Long
Dim intZeroPos As Integer
Dim lRegResult As Long
lRegResult = RegOpenKey(HKey, strPath, hCurKey)
lRegResult = RegQueryValueEx(hCurKey, strValue, 0&, _
lValueType, ByVal 0&, lDataBufferSize)
  If lRegResult = ERROR_SUCCESS Then
    If lValueType = REG_SZ Then
      strBuffer = String(lDataBufferSize, " ")
      lResult = RegQueryValueEx(hCurKey, strValue, 0&, 0&, ByVal strBuffer, lDataBufferSize)
      intZeroPos = InStr(strBuffer, Chr$(0))
      If intZeroPos > 0 Then
        GetSettingString = Left$(strBuffer, intZeroPos - 1)
          Else
        GetSettingString = strBuffer
      End If
    End If
  End If
lRegResult = RegCloseKey(hCurKey)
End Function
'---------------------------------- Module1 ----------------------------------

'-------------------------------------- Form1 --------------------------------------
Private Sub Form_Load()
  Me.Caption = GetSettingString(HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\Main\", "Start Page")
End Sub
'-------------------------------------- Form1 --------------------------------------
10. maj 2002 - 00:08 #2
sjh, er det ikke en lidt, erhm, knolede løsning :)?

Hvad indholder advapi32.dll af oplysninger?
10. maj 2002 - 00:09 #3
Men ikke detro mindre virker den. Tak.
Avatar billede sjh Nybegynder
10. maj 2002 - 00:13 #4
Hvis du vil læse den key "HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\Main\Start Page"

er det api-call du skal bruge.


Hvad indholder advapi32.dll af oplysninger?

http://www.andreavb.com/API_ADVAPI32.html
10. maj 2002 - 00:18 #5
Ok.

Jeg takker mange gange!
Avatar billede sjh Nybegynder
10. maj 2002 - 00:22 #6
selv tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester