![]() |
Gibt es die funktion StrToHKEY ?
moin :D
da ich das rad nicht neu erfinden möchte frage ich ob es diese funktion (wie auch immer der name sein koennte) bereits gibt? ansonsten hab ich mir das so gedacht:
Delphi-Quellcode:
function StrToHKEY(StrKey: string): HKEY;
begin if StrKey = 'HKEY_CLASSES_ROOT' then result := HKEY_CLASSES_ROOT; if StrKey = 'HKEY_CURRENT_USER' then result := HKEY_CURRENT_USER; if StrKey = 'HKEY_LOCAL_MACHINE' then result := HKEY_LOCAL_MACHINE; if StrKey = 'HKEY_USERS' then result := HKEY_USERS; if StrKey = 'HKEY_CURRENT_CONFIG' then result := HKEY_CURRENT_CONFIG; end; |
Re: Gibt es die funktion StrToHKEY ?
ich würde noch nen uppercase auf "StrKey" durchführen damit es egal ist ob der user 'HKEY_CLASSES_ROOT' groß oder klein schreibt
|
Re: Gibt es die funktion StrToHKEY ?
Stimmt, ganz vergessen, danke ^^
|
Re: Gibt es die funktion StrToHKEY ?
nur zur info: sowas gibts wohl nicht ;-)
|
Re: Gibt es die funktion StrToHKEY ?
Zitat:
ist evtl. nicht sooo wichtig, aber ich würde den StringParameter als CONST deklarieren, also
Delphi-Quellcode:
sonst fügt Delphi noch zusätzlichen Code für die Referenzzählung des Strings ein und das macht die funktion langsamer.
function StrToHKEY(const StrKey: string): HKEY;
mfG mirage228 |
Re: Gibt es die funktion StrToHKEY ?
danke, mach ich 8)
|
Re: Gibt es die funktion StrToHKEY ?
Meine Funktionen sehen so aus:
Delphi-Quellcode:
const
HKEYNames: array[0..6] of string = ('HKEY_CLASSES_ROOT', 'HKEY_CURRENT_USER', 'HKEY_LOCAL_MACHINE', 'HKEY_USERS', 'HKEY_PERFORMANCE_DATA', 'HKEY_CURRENT_CONFIG', 'HKEY_DYN_DATA'); function HKEYToStr(const Key: HKEY): string; begin if (key < $80000000) or (key > $80000006) then Result := '' else Result := HKEYNames[key - $80000000]; end; function StrToHKEY(const KEY: string): HKEY; var i: Byte; begin Result := $0; for i := Low(HKEYNames) to High(HKEYNames) do begin if SameText(HKEYNames[i], KEY) then Result := $80000000 + i; end; end; |
Re: Gibt es die funktion StrToHKEY ?
Ich würde sogar noch einen Schritt weiter gehen und "$80000000" durch "HKEY_CLASSES_ROOT" ersetzen, damit man auf Anhieb weiß, worauf sich die zugrunde liegenden Berechnungen des Schlüssels bzw. Strings stützen.
Und dann würde ich auch noch die Kurzformen wie HKCR, HKCU, HKLM, usw. integrieren. |
Re: Gibt es die funktion StrToHKEY ?
was ist denn $80000000 und $80000006?
ich würd nicht nur gern wissen wwas sie bedeuten, sondern auch wie man auf diese zahlen kommt.. |
Re: Gibt es die funktion StrToHKEY ?
Das sind die Werte zu den Konstanten (HKEY_*)
Delphi-Quellcode:
Const
HKEY_CLASSES_ROOT = $80000000; HKEY_CURRENT_USER = $80000001; HKEY_LOCAL_MACHINE = $80000002; HKEY_USERS = $80000003; HKEY_PERFORMANCE_DATA = $80000004; HKEY_CURRENT_CONFIG = $80000005; HKEY_DYN_DATA = $80000006; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz