AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TRegistry für 64Bit und 32Bit
Thema durchsuchen
Ansicht
Themen-Optionen

TRegistry für 64Bit und 32Bit

Ein Thema von RWarnecke · begonnen am 2. Jun 2007 · letzter Beitrag vom 21. Aug 2010
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke
Registriert seit: 31. Dez 2004
Hallo zusammen,

ich stand vor dem Problem, wie mache ich mein Programm SystemInfo 32Bit und 64Bit fähig. Dann bekam ich den Hinweis von Mazel, dass Rakshasa diesen Artikel geschrieben hat. Also habe ich mir überlegt, wie wäre es wenn ich die bestehende TRegistry-Klasse aus der Regsitry.pas abändere, so dass Sie für 32Bit und 64Bit funktioniert. Das soweit zur zur Vorgeschichte.

P.S. : Das ist aber noch nicht in meinem Programm eingearbeitet.

So nun möchte ich euch die Unit auch nicht vorenthalten. Ich habe nach der Anleitung von Rakshasa die Klasse jetzt mal umgebaut. Unter meinem 32Bit Windowx XP funktioniert die Unit ganz hervorragend. Daniel hat eben auch einen ersten Test mit einem kleinen Demo Programm von mir gemacht und das war auch erfolgreich.

Das Demoprogramm findet Ihr im Anhang.

Die Unit könnt Ihr euch von meiner Seite runterladen.

Downloads:
Reg32vs64.pas

Bitte testet mal diese Unit auf Herz und Nieren. Ich würde mich über viel Feedback freuen.
Angehängte Dateien
Dateityp: zip project3_185.zip (224,1 KB, 115x aufgerufen)
 
CCRDude
 
#2
  Alt 2. Jun 2007, 22:28
Hmmm... ich hab gerade mal reingeschaut, um muß mal etwas deutlich kritisieren: und zwar GetFAccess.
Sowohl in OpenKey als auch in OpenKeyReadOnly erzwingst Du damit die Nutzung des 64-Bit-Teils der Registry. Damit ist die Unit weniger tauglich als das Original, in dem man wenigstens bei OpenKey (wenn auch nicht OpenKeyReadOnly) als Entwickler noch vorwählen kann, welchen Teil man öffnen will.

Microsoft hat sich ja durchaus Gedanken gemacht, warum 32-bit-Programme umgelenkt schreiben - z.B. damit Windows Explorer- oder Internet Explorer-Erweiterungen (von einfachen Explorer-Kontextmenü-Erweiterungen bis hin zu BHOs) sich automatisch im passenden Teil eintragen. Der Zugriff auf den 64-bit-Teil von einer 32-bit-Anwendung aus sollte für Ausnahmen reserviert sein, deine Unit macht das zum Standard.

Insofern sehe ich momentan keinerlei Sinn und nur weniger Möglichkeiten als im Original in Deiner Unit. Tut mir leid
Um einen Vorschlag zu machen, wie ich persönlich es sinnvoller fände: wenn über eine Klasseneigenschaft (enum) bzw. zusätzlichen optionalen Parameter für OpenKey &c z.B. auswählbar wäre, ob: 32 bit-Teil, 64 bit-Teil, oder "immer das aktuellste".

Davon abgesehen ist es sicherlich auch strafbar, das Copyright von Borland zu entfernen und Dein alleiniges Copyright reinzuschreiben, obwohl Du selber darauf verweist, daß Du dort kopiert hast. Aber das war sicherlich ein Versehen
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#3
  Alt 2. Jun 2007, 22:46
Zitat von CCRDude:
Hmmm... ich hab gerade mal reingeschaut, um muß mal etwas deutlich kritisieren: und zwar GetFAccess.
Sowohl in OpenKey als auch in OpenKeyReadOnly erzwingst Du damit die Nutzung des 64-Bit-Teils der Registry. Damit ist die Unit weniger tauglich als das Original, in dem man wenigstens bei OpenKey (wenn auch nicht OpenKeyReadOnly) als Entwickler noch vorwählen kann, welchen Teil man öffnen will.
Ganz erzwingen tue ich es doch nicht. Ich lasse doch die Funktion entscheiden, ob es ein 64Bit System ist oder nicht. Denn die Flags sind nur supported ab Windows XP.
Zitat von CCRDude:
Microsoft hat sich ja durchaus Gedanken gemacht, warum 32-bit-Programme umgelenkt schreiben - z.B. damit Windows Explorer- oder Internet Explorer-Erweiterungen (von einfachen Explorer-Kontextmenü-Erweiterungen bis hin zu BHOs) sich automatisch im passenden Teil eintragen. Der Zugriff auf den 64-bit-Teil von einer 32-bit-Anwendung aus sollte für Ausnahmen reserviert sein, deine Unit macht das zum Standard.

Insofern sehe ich momentan keinerlei Sinn und nur weniger Möglichkeiten als im Original in Deiner Unit. Tut mir leid
Um einen Vorschlag zu machen, wie ich persönlich es sinnvoller fände: wenn über eine Klasseneigenschaft (enum) bzw. zusätzlichen optionalen Parameter für OpenKey &c z.B. auswählbar wäre, ob: 32 bit-Teil, 64 bit-Teil, oder "immer das aktuellste".
Ich muss dazusagen, dass ist meine erste Klasse und UNit die ich als OpenSource hier reinstelle. Ich bin von dem Arktikel her ausgegangen, dass einTeil der Regsitry anderst wäre unter einem 64Bit System. Deshalb habe ich das ganze so gemacht. Ok, ich werde mir das mal anschauen, wie ich das ganze mit Parametern machen kann.

Zitat von CCRDude:
Davon abgesehen ist es sicherlich auch strafbar, das Copyright von Borland zu entfernen und Dein alleiniges Copyright reinzuschreiben, obwohl Du selber darauf verweist, daß Du dort kopiert hast. Aber das war sicherlich ein Versehen
Upps, werde das natürlich sofort ändern.
Rolf Warnecke
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#4
  Alt 3. Jun 2007, 01:18
Nachdem mich CCRDude freundlicherweise darauf hingewiesen hat, dass ich in der Unit etwas zum Standard mache, was ich eigentlich nicht sollte, habe ich versucht nun die Vorschläge umzusetzen. Ich hoffe das ist jetzt der richtige Anfang. Es ist sicherlich noch einiges verbesserungsbedürftig, aber dafür habe ich ein offenes Ohr.

Deshalb ist auch die neue Version der Unit hochgeladen und das Demo-Programm im ersten Beitrag ausgetauscht. Nun kann man mit einer Checkbox die Überprüfung 32Bit vs. 64Bit ein oder ausschalten.

Edit : Ich habe auch noch die Projektdateien zum Demo-Programm mit dazugestellt.
Rolf Warnecke
  Mit Zitat antworten Zitat
JannesDKS
 
#5
  Alt 21. Aug 2010, 14:46
Moin,

würd mir die re32vs64 gern mal anschauen, weil ich selbst grad probleme mit ener 6bit registry habe. Leide rist das n toter link. Kannst du die vielleicht nochmal hochladen?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz