AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

registry: string auslesen

Ein Thema von Pseudemys Nelsoni · begonnen am 17. Mai 2004 · letzter Beitrag vom 17. Mai 2004
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

registry: string auslesen

  Alt 17. Mai 2004, 11:49
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?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Kasoft

Registriert seit: 5. Mai 2004
Ort: Filderstadt
111 Beiträge
 
Delphi 7 Professional
 
#2

Re: registry: string auslesen

  Alt 17. Mai 2004, 12:17
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:
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;
was bei dir vielleicht schiefgegangen ist könnte:
lpvaluename sein. Du inititialierst ihn mit ''
der weiss glaub ich gar nicht was er auslesen soll...

Probiers halt mal.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: registry: string auslesen

  Alt 17. Mai 2004, 12:22
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
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Kasoft

Registriert seit: 5. Mai 2004
Ort: Filderstadt
111 Beiträge
 
Delphi 7 Professional
 
#4

Re: registry: string auslesen

  Alt 17. Mai 2004, 13:01
Upss...dann hab ich mich gerade total vergriffen sorry.

Mein Fehler

MfG
Kasoft
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5

Re: registry: string auslesen

  Alt 17. Mai 2004, 13:11
1. Wie gehabt: Win32-API-Tutorials für Delphi
2. klick (etwas in der Art)
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: registry: string auslesen

  Alt 17. Mai 2004, 13:23
@Kasoft: hast es ja nur gut gemeint, trotzdem danke
@Mathias: @1, da hab ich scho geschaut, 2 guck ich mir mal an, danke
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: registry: string auslesen

  Alt 17. Mai 2004, 13:36
Zitat:
@1, da hab ich scho geschaut
Geschaut, vielleicht. Gelesen und verstanden, nicht. Sorry, aber es wird auch erwähnt:
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:
var
  lpDataBuf : PChar;
  lpcbDataBufSize : DWORD;

{ ... }

    lpcbDataBufSize := SizeOf(lpDataBuf);
// aber wo ist bspw. der Befehl, in dem du "lpDataBuf"
// x Bytes des RAMS zuweist?
zu verwenden?
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#8

Re: registry: string auslesen

  Alt 17. Mai 2004, 14:09
ah, 2mal aufrufen, auf die idee bin ich leider nicht gekommen

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" :]
Mario
MSN: cyanide@ccode.de
  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 03:26 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