Registry Eintrag wird nicht gelesen

desaster0505

Erfahrenes Mitglied
Hallo zusammen,

ich habe ein Problem bei dem ich nicht weiter weiß.
Es geht darum, dass ich in der Registry unter HKEY_LOCAL_MACHINE/Software/Programmname/Pfad einen Eintrag gemacht habe der den Installationspfad gespeichert hat.

Das auslesen mit den API-Funktionen klappt auch wunderbar, wenn ich für diesen Eintrag als Berechtigung (als Hauptnutzer angemeldet ) Vollzugriff in der Registry gesetzt habe.

Wenn jedoch nur das Recht LESEN eingestellt ist (immer noch als Hauptnutzer angemeldet) klappt das auslesen mit der API-Funktion RegOpenKeyEx nicht mehr.

Hat irgendjemand eine Idee woran das liegen kann?

Ich habe nämlich mal nachgeschaut wie das bei anderen Programmen so ist (z.B. Notepad ++, wass bei mir installiert ist) und die haben lediglich auch das Lesen als Zugriffsrecht in der Registry, aber die haben damit wohl keine Probleme, zumindest nicht das ich wüßte.

Hoffe mir kann da jemand weiterhelfen.
 
Und welches VB benutzt du überhaupt?

Ich hab zwar noch fast keine Ahnung von VB (Benutze 2008), aber i-wie ging das auch so.

If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\Software\Test1\TestApp1\Key", "Key", "Nothing") = "Registered" then form2.show

Vielleicht liege ich auch total falsch...

Jannik93
 
Achso dann weiß ich auch leider nicht mit VB06, bei VB2008 ist das eigentlich ganz einfach mit GetValue und SetValue... Aber ich hab auch keine Ahnung was API ist xD
 
Hallo,

was soll das samDesired denn sein?

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

' RegOpenKeyEx samDesired-Konstanten
' ----------------------------------

' Alle Arten von Zugiffen
Private Const KEY_ALL_ACCESS = &HF003F
' Erlaubt das Erstellen von symbolischen Links
Private Const KEY_CREATE_LINK = &H20
' Erlaubt, Unterschlüssel zu erstellen
Private Const KEY_CREATE_SUB_KEY = &H4
' Erlaubt Unterschlüssel aufzulisten
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
' Aktiviert die Änderungsbenachrichtigung (nicht unter Win95)
Private Const KEY_NOTIFY = &H10
' Erlaubt das Abfragen/Auslesen von Unterschlüssel
Private Const KEY_QUERY_VALUE = &H1
' Lesezugriff
Private Const KEY_READ = &H20019
' Erlaubt das Schreiben von Werten in Unterschlüssel
Private Const KEY_SET_VALUE = &H2
' Schreibzugriff
Private Const KEY_WRITE = &H20006


samDesired ist das Zugriffsrecht
 
Hallo,

das ist folgendermaßen gesetzt:

Visual Basic:
Public Const READ_CONTROL = &H20000
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_SET_VALUE = &H2
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_CREATE_LINK = &H20
Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL

Das KEY_ALL_ACCESS verwende ich dann für da samDesired. Was muss ich denn noch setzen damit das lesen klappt?
 
In meinem Post oben sehe ich ganz deutlich ein

' Lesezugriff
Private Const KEY_READ = &H20019

.oO(Wofür das wohl blos ist?)

Ausserdem: NIEMALS API-Konstanten selbst berechnen Du kannst nie wissen, ob Microsoft wirklich einfach nur eine Addition von anderen Konstanten verwendet, oder doch einen eigenen magischen Wert.

mein Wert für KEY_ALL_ACCESS ist &HF003F

Bist du dir sicher, dass bei deiner Zeile
Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL

genau dieser Wert herauskommt?


Hallo,

das ist folgendermaßen gesetzt:

Visual Basic:
Public Const READ_CONTROL = &H20000
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_SET_VALUE = &H2
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_CREATE_LINK = &H20
Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL

Das KEY_ALL_ACCESS verwende ich dann für da samDesired. Was muss ich denn noch setzen damit das lesen klappt?
 

Neue Beiträge

Zurück