![]() |
registry: string auslesen
Delphi-Quellcode:
function RegMirc(mWnd, aWnd: HWND; data, parms: PChar; show, nopause: boolean): integer; stdcall;
var lpValueName : PChar; KeyH : HKEY; lpDataBuf : PChar; lpcbDataBufSize : DWORD; begin Result := 2; if RegOpenKeyEx( HKEY_CURRENT_USER, 'Software\mIRC\UserName', 0, KEY_READ, KeyH ) = ERROR_SUCCESS then Try lpValueName := ''; lpcbDataBufSize := SizeOf(lpDataBuf); RegQueryValueEx( KeyH, @lpValueName, nil, nil, @lpDataBuf, @lpcbDataBufSize ); MessageBox(0, PChar(lpDataBuf), '!', 0); Finally RegCloseKey(KeyH); end; end; hallo leute, meine Messagebox gibt mir nichts anderes ausser ein "viereck"-zeichen aus. In der registry steht aber in dem key die value "hallo", wieso bekomme ich den Wert nicht? |
Re: registry: string auslesen
hmm ich weiss nicht ganz genau was du versuchst zu machen. Aber wenns nur ein String ist den du
auslesen willst geht das einfacher.
Code:
was bei dir vielleicht schiefgegangen ist könnte:
procedure regauslesen;
var reg : TRegistry; begin reg := TRegistry.create; // wenns nur lesezugriff ist dann parameter eingeben reg.root := HKEY_LOCAL_USER; reg.openkey('Software\mIRC\UserName'); showmessage(reg.readString(value)); //value = der Wert den du auslesen willst; reg.free; // immer aufräumen ;-) end; lpvaluename sein. Du inititialierst ihn mit '' der weiss glaub ich gar nicht was er auslesen soll... Probiers halt mal. |
Re: registry: string auslesen
hallo Kasoft,
ich arbeite ohne die VCL, also alles über die api (siehe forum: windows api^^) also da gibt es keine klasse wie die TRegistry. mit '' initalisierte strings sind defaultwerte. siehe PSDK |
Re: registry: string auslesen
Upss...dann hab ich mich gerade total vergriffen sorry.
Mein Fehler MfG Kasoft |
Re: registry: string auslesen
|
Re: registry: string auslesen
@Kasoft: hast es ja nur gut gemeint, trotzdem danke ;)
@Mathias: @1, da hab ich scho geschaut, 2 guck ich mir mal an, danke |
Re: registry: string auslesen
Zitat:
In den berühmten Tutorials steht Die Variable "cbData" enthält nach dem Funktionsaufruf die Anzahl der kopierten oder benötigten Bytes. [...] Wenn also unsere Prüfung geklappt hat, dann setzen wir den Puffer auf die gewünschte Länge und rufen die Funktion erneut auf [...] Und jetzt denk mal darüber nach, wie sinnvoll es ist, eine "pchar"-Variable ohne zuvor festgelegte Größe
Delphi-Quellcode:
zu verwenden?
var
lpDataBuf : PChar; lpcbDataBufSize : DWORD; { ... } lpcbDataBufSize := SizeOf(lpDataBuf); // aber wo ist bspw. der Befehl, in dem du "lpDataBuf" // x Bytes des RAMS zuweist? |
Re: registry: string auslesen
ah, 2mal aufrufen, auf die idee bin ich leider nicht gekommen :oops:
ich hatte mich schon gefragt wie man die bytegrösse angeben soll wenn man sie noch garnicht hat, danke schonmal, ich werds mal versuchen. Jo mein code war falsch, aber es ist mein "erstes mal" :] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 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-2025 by Thomas Breitkreuz