Zugriff auf Windows-Registrierung auch Win7 [erledigt]

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Zugriff auf Windows-Registrierung auch Win7 [erledigt]

Beitrag von Werner_Bayern »

Servus,

wie macht ihr das? Mit der regclass von Thomas Braun funktioniert das bei mir nicht unter Win7 64bit, sogar Zugriffe auf den Schlüssel "HKEY_CURRENT_USER\Control Panel\Desktop" funktioniert nicht, ein

Code: Alles auswählen

cWallPaper := oReg:GetValue( "Wallpaper")
aus seinem Beispiel liefert NIL.
Zuletzt geändert von Werner_Bayern am Fr, 09. Nov 2012 16:31, insgesamt 1-mal geändert.
es grüßt

Werner

<when the music is over, turn off the lights!>
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von georg »

Hallo, Werner -


also, ich entschuldige mich auch sofort für die Frage ... ist der Schlüssel überhaupt definiert?

Code: Alles auswählen

   oReg := XbpReg():new("HKEY_CLASSES_ROOT\MSComctlLib.SbarCtrl")
   lRegSuccess := oReg:MoveDown("CLSID")
   IF !lRegSuccess
      oXbp:caption := "Not installed"
      lInstalled := .F.
      oGB:setColorBG(GRA_CLR_RED)
   ELSE
      cRegEntry := oReg:getValue("")            // this is the ".default" entry in the registry
      IF cRegEntry <> NIL
         oXbp:caption := "ActiveX control is installed"
Ist ein einfaches Code-Beispiel, das einwandfrei unter Windows 2008 Server R2 (= Windows 7, 64 bit) läuft. Zumindest kommt die Meldung, dass diese ActiveX Control installiert ist. Und auch der Debugger zeigt an, dass Werte zurückgeliefert werden.

Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von Werner_Bayern »

Servus Georg,

Entschuldigung angenommen :razz:
Ja, der Schlüssel existiert, es gehen auch alle anderen Beispiele aus seiner Class nicht. Der Tommy1 - Eintrag wird nicht angelegt, erscheint aber ganz woanders und die Keys werden auch falsch angelegt.

Oder ist das ein Rechte-Problem?
Dateianhänge
Neues Bild (1).jpg
Neues Bild (1).jpg (70.45 KiB) 6869 mal betrachtet
es grüßt

Werner

<when the music is over, turn off the lights!>
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von georg »

Guten Morgen, Werner -


mein Beispiel geht natürlich davon aus, dass ich nur lese und nicht schreibe. Vielleicht lässt Du das Programm mal als Administrator laufen?

Ausserdem kann man im Debugger recht schön verfolgen, wie die Zugriffe erfolgen. Aus meiner Erfahrung gehe ich den ganzen Registry-Baum ab, d.h. von HKEY_irgendwas bis zum Zieleintrag, und versuche nicht, den Zielzweig direkt zu öffnen. Vielleicht findest Du ja auf diesem Weg das Problem.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von Werner_Bayern »

Danke, werde ich heute im Laufe des Tages testen.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von AUGE_OHR »

hi,

Seit VISTA gibt es den "VirtualStore" ;)

so wie es "verboten" ist in die Ordner %ProgramFiles% und %SystemRoot% zu schreiben so ist der Zugriff auf die Registry seit VISTA "virtualisiert"

p.s. ein PC mit 32bit OS() wird die 64bit Registry Einträge nicht finden ...
gruss by OHR
Jimmy
Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von Markus Walter »

Hallo Werner,

Dein Problem besteht wohl darin, dass Windows in den 64bit-Versionen zwei getrennte Zweige in der Registry führt und "automatisch" zwischen 64bit- und 32bit-Zugriffen unterscheidet. Dazu dient der Wow6432Node, auf den die 32Bit-Versionen zugreifen. Damit kommst Du zu dem Problem, dass ein 64bit-Prozess in Teilen eine andere Registry "sieht", als ein 32bit-Prozess.
Gruß
Markus

Mitglied der XUG Saarland-Pfalz
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von brandelh »

Wobei doch Xbase++ Programme immer im 32 Bit Pfad sind. ;-)
Gruß
Hubert
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von georg »

Hallo,


falls es noch nicht aufgefallen ist ... dieses Thema geht von einem Pfad aus, der NIX mit 32 oder 64 bit zu tun hat, und daher auch die Node6432 Unterscheidung nicht kennt.

Und auch mein Beispiel in Bezug auf ActiveX Controls bezieht sich auf CLASSES_ROOT, und auch da ist diese Unterscheidung nicht gegeben.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von AUGE_OHR »

georg hat geschrieben:falls es noch nicht aufgefallen ist ... dieses Thema geht von einem Pfad aus, der NIX mit 32 oder 64 bit zu tun hat, und daher auch die Node6432 Unterscheidung nicht kennt.

Und auch mein Beispiel in Bezug auf ActiveX Controls bezieht sich auf CLASSES_ROOT, und auch da ist diese Unterscheidung nicht gegeben.
wir reden doch hier von "schreiben" in die Registry ... "lesen" kann jeder User.

Wenn ein User ( nicht Administrator ) ein Programm installiert dann landet es in "VirtualStore" des User und ist somit für andere User nicht zugänglich.

p.s. Win7 / Srv2K8 haben ja kein MsComCtl.OCX.
Das ist auch nicht notwendig den es gibt ja auch die DLL von den Common Controls die man auch "direkt" ansprechen kann.
siehe http://www.xbaseforum.de/viewtopic.php?f=27&t=5254

Code: Alles auswählen

benutzt ot4xb Syntax
   da := ::DrawingArea
   ::hDa := da:GetHWnd()
...
   ::hStatusBar := @user32:CreateWindowExA(0,"msctls_statusbar32",0,;
                   nOr(WS_CHILD, WS_VISIBLE),0,0,0,0,;
                   ::hDa,-1,AppInstance(),0)
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von Martin Altmann »

Moin Jimmy,
AUGE_OHR hat geschrieben: ... "lesen" kann jeder User.
sorry - aber das ist Unsinn. Es können auch Leserechte nur für bestimmte User oder Gruppen eingerichtet sein!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von georg »

Hallo, Jimmy -
AUGE_OHR hat geschrieben: wir reden doch hier von "schreiben" in die Registry ... "lesen" kann jeder User.
lese bitte den ersten Beitrag, ein lesender Zugriff liefert NIL zurück. Das ist das Ausgangsproblem.


Gruss,

Georg


P.S.: Du könntest Dich gerne ein wenig über die andere Statusbar Variante auslassen ...
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von AUGE_OHR »

Martin Altmann hat geschrieben:
AUGE_OHR hat geschrieben: ... "lesen" kann jeder User.
sorry - aber das ist Unsinn. Es können auch Leserechte nur für bestimmte User oder Gruppen eingerichtet sein!
ok klar, aber ich meinte es in Zusammenhang als Gegensatz zu "schreiben" in die Registry.
auch klar das ein User ( ausser dem Admin ) gewöhnlich in der Registry nur "seine" Unterzweige lesen kann
... aber "schreiben" geht eben nach HKEY_CLASSES_ROOT\VirtualStore...
georg hat geschrieben:ein lesender Zugriff liefert NIL zurück
klar muss man dann auch den HKEY_CLASSES_ROOT\VirtualStore... Zweig lesen ;)
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von AUGE_OHR »

georg hat geschrieben:P.S.: Du könntest Dich gerne ein wenig über die andere Statusbar Variante auslassen ...
yup, aber lass uns das in dem anderen Thread machen.
http://www.xbaseforum.de/viewtopic.php?f=27&t=5254
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Zugriff auf Windows-Registrierung auch Win7

Beitrag von Werner_Bayern »

Nur zur Info, hab mich jetzt nochmal damit beschäftigt, funktioniert alles einwandfrei mit der Registry class for Xbase++ von Thomas Braun von 2001.
Hab ein kleines Tool damit machen können, das unter Terminal Server bei allen Usern Einträge setzen / ändern kann. Einige Methoden mussten jedoch angepasst werden, weil die teilweise beim Auslesen von Werten / Keys falsche Zeichen liefern.

Danke an alle.
es grüßt

Werner

<when the music is over, turn off the lights!>
Antworten