Deutsch
Units

Registry Unit/Include stellt sich vor

 
- Seite 1 -


Registry.pcu und Registry.inc, Copyright by Thomas Schulz (aka ts-soft)
Veröffentlicht unter Lizenz der LGPL: [...] 

Um die doch sehr eingeschränkte Funktionalität von XProfan zur Bearbeitung der Registry zu erweitern,
habe ich diese Unit/Include geschrieben.

Anforderungen:
ab Win95, NT4 mit installiertem IE4 oder höher
Nur mit XProfan 10 getestet

Parameter und Bedeutungen:
- KeyName$ = Der gesamte Key, inclusive Klasse, Profan kürzel werden unterstützt!
Beispiel: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion
oder: HKEY_2SOFTWAREMicrosoftWindowsCurrentVersion

- ValueName$ = Eintrag (S3 in der Profan-Hilfe)

- Value$ oder Value& = Wert (S4 in der Profan-Hilfe)

- Index& = 0 - ?, für Enumerationen (ListSubKey, ListSubValue)

- Type& = Der Typ des Eintrags (SetString)
1 = REG_SZ (default)
2 = REG_EXPAND_SZ
3 = REG_BINARY
4 = REG_DWORD (für Long besser SetLong verwenden!)
7 = REG_MULTI_SZ

Da es sich bei dieser Unit/Include um eine Klasse handelt, ist als erstes immer ein Objekt zu erzeugen!

z.B:
KompilierenMarkierenSeparieren
!$$U Registry.pcu
Declare Reg#
Reg# = New(Registry)

oder:
KompilierenMarkierenSeparieren
!$$U Registry.pcu
Declare Reg#
Dim Reg#, Registry
Reg#.Init()  wichtig!

Am ende wieder mit Dispose freigeben!

Folgende ObjectVariable steht zur Verfügung:
.Error& (z.B. Reg#.Error&) <> 0 bedeutet Fehler

Folgende öffentliche Methoden gibt es:

Fehler$ = .GetErrMsg()
Ergebnis& = .DeleteKey(KeyName$)
Ergebnis& = .DeleteEmptyKey(KeyName$)
Ergebnis& = .DeleteValue(KeyName$, ValueName$)
Type& = .GetValueType(KeyName$, ValueName$)
Ergebnis$ = .ListSubKey(KeyName$, Index&)
Ergebnis$ = .ListSubValue(KeyName$, Index&)
Ergebnis& = .GetLong(KeyName$, ValueName$)
Ergebnis$ = .GetString(KeyName$, ValueName$) Funktioniert mit allen Registrytypen!
Ergebnis& = .SetLong(KeyName$, ValueName$, Value&) nicht existente Keys werden autom. erstellt!
Ergebnis& = .SetString(KeyName$, ValueName$, Value$[, Type&]) Type& ist Optional, default = REG_SZ!

Beispiele zu allen Methoden sind dabei!

Feedback willkommen!

13 kB
Kurzbeschreibung: Version 1.3
Hochgeladen:06.12.2006
Ladeanzahl160
Herunterladen
 
05.12.2006  
 



 
- Seite 1 -


Proc ?_Registry.Registry
Proc ?_Registry.Registry

 
05.12.2006  
 




Jac
de
Lad
Verdammt. Ich meine korrigiert müsste es doch
KompilierenMarkierenSeparierenheißen, oder?!
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
05.12.2006  
 



Müsste dann in der Klassendefinition nicht auch class ?_blub=+?_blub@ stehen?
 
05.12.2006  
 




RGH
[quote:ecb7539923=iF]Müsste dann in der Klassendefinition nicht auch class ?_blub = +?_blub@ stehen? [/quote:ecb7539923]
Genau!

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
05.12.2006  
 



 
- Seite 2 -


Würde es einen Sinn machen, den Methoden auch einen Namespace zu geben? Ich denke mal, da die Methoden sowieso nur über die Klasse erreichbar sind (sollen), sollte der Namensraum der Klasse alles abdecken. Oder Irre ich jetzt

PS: Der Constructor hat nur Dummy-Function , die Syntax mit New ist schöner
 
05.12.2006  
 



Hm ja ich glaub Du irrst denn es geht darum das der Konstruktor nicht als solcher erkannt wird wenn er nicht auch das NameSpaceSign trägt.
 
05.12.2006  
 



iF
Ich würde mal sagen Festplattenplatz haben alle genug - im Bezug auf XProfan wäre da Geschwindigkeit angebrachter.


Geschwindigkeitsoptimierung, wie man sie für einen Registry-Editor oder ähnlich braucht, ist so in einer Unit nicht möglich. In einer Unit kann ich nicht im voraus Wissen, was als nächstes kommt, so das der Key bei jedem Vorgang geöffnet und wieder geschlossen wird, was natürlich bei direkter API-Nutzung beschleunigt werden könnte. Ich denke mal das erstellen von Registry-Editoren ist ein Ausnahmefall, so das die Geschwindigkeit vollkommen ausreichend ist. Am Code selber ist ansonsten IMHO nichts zu optimieren.
 
05.12.2006  
 



Was ist mit Call statt external? Ich meine nur ums zu übertreiben...
 
05.12.2006  
 



[quote:eed748da24=iF]Was ist mit Call statt external? Ich meine nur ums zu übertreiben... [/quote:eed748da24]
Der Gedanke ist mir auch schon gekommen, aber die Advapi32.dll ist ja bereits statisch zur Runtime gebunden, so das die schnelleren Delphi-Aufrufe zur Geltung kommen und es auch kein Sicherheitsleck gibt. Da hab ihr sowieso was verkehrt verstanden, denke ich. Lediglich die shlwapi.dll ist nicht statisch in die Runtime gebunden, aber die wird nur für 2 Methoden gebraucht (DeleteKey, DelteteEmptyKey), das sollte also nichts bringen.
 
05.12.2006  
 



[quote:f01e8c7b50]so das die schnelleren Delphi-Aufrufe zur Geltung kommen [/quote:f01e8c7b50]
Wird jetzt offtopic, aber ich denke das dem nicht so ist. Ich verweise ja hier xpse  auf ein BeispieCode an dem jeder nachprüfen kann das Call in diesem Fall deutlich! schneller ist. Oder reden wir aneinander vorbei?! Egal - ist eh offtopic.
 
05.12.2006  
 



Update auf Version 1.2

iFs Vorschlag zur Beschleunigung umgesetzt

Die meisten API-Aufrufe laufen jetzt über Call, was wohl sinnvoll ist, da ja dieselbe API meist mehrmals benötigt wird. Jetzt ist es aber unbedingt erforderlich, das der Constructor ausgeführt wird, alternativ gibts jetzt die Methode .Init()
Das erste Posting, sowie die Beispiele wurden entsprechend angepaßt.

Gruß
Thomas
 
06.12.2006  
 



iF
Hm ja ich glaub Du irrst denn es geht darum das der Konstruktor nicht als solcher erkannt wird wenn er nicht auch das NameSpaceSign trägt.


Hab ich wohl vorher übersehen
// Edit
Scheint doch was drann zu sein, werde es nochmal Testen müssen

//Edit2
Scheint wirklich für den Construktor erforderlich zu sein, habs jetzt in Version 1.3 angepaßt! Hab ich wenigstens wieder was dazu gelernt , danke für die Hinweise

Gruß
Thomas s
 
06.12.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

19.247 Betrachtungen

Unbenanntvor 0 min.
H.Brill21.05.2023
maroro26.05.2018
Andre Rohland31.01.2018
JörgG08.09.2017
Mehr...

Themeninformationen

Dieses Thema hat 4 Teilnehmer:

unbekannt (8x)
iF (8x)
Jac de Lad (3x)
RGH (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie