Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi REG_EXPAND_SZ (https://www.delphipraxis.net/112147-reg_expand_sz.html)

delphinia 15. Apr 2008 19:55


REG_EXPAND_SZ
 
Hi @all....


Wie schreibe ich die Registry eine Wert vom Typ REG_EXPAND_SZ
Speziell unter Vista 64BIT/32BIT

Christian Seehase 15. Apr 2008 20:43

Re: REG_EXPAND_SZ
 
Moin Doreen,

schau Dir dazu mal MSDN-Library durchsuchenRegSetValueEx an.

delphinia 16. Apr 2008 07:33

Re: REG_EXPAND_SZ
 
Das half mir alles nichts :-(

habe das hier gefunden
http://www.delphipraxis.net/internal...=regsetvalueex
und vor allem das hier http://www.delphipraxis.net/internal...t=registry+bit

Ich habe vor allem Problem unter 64BIT Vista eine Schlüssel zu schreiben!
mit dem Beispiel aus Link 2 hmmm der half mir auch nicht...

Möchte in den ren Key HKEY_CLASSES_ROOT\.bat schreiben bzw HKEY_CLASSES_ROOT\batfile
Bekomme aber jedesmal eine Exception das nicht der Wert X geschreiben werden konnte...

Wäre über weitere Hilfe dankbar...

delphinia 16. Apr 2008 18:17

Re: REG_EXPAND_SZ
 
na da schein ich wohl nen Problem zu haben wo es keien Lösung gibt? hmmm das plöd

teebee 16. Apr 2008 20:49

Re: REG_EXPAND_SZ
 
Vielleicht schreibst Du erstmal genau, wie Du es versuchst und was genau nicht funktioniert.
Ansonsten gibt es noch evtl. das hier zu lesen.

Looking4Clues 16. Apr 2008 20:59

Re: REG_EXPAND_SZ
 
Zitat:

Zitat von delphinia
na da schein ich wohl nen Problem zu haben wo es keien Lösung gibt? hmmm das plöd

Plöt du nix sein akkliministardor?

Christian Seehase 16. Apr 2008 21:18

Re: REG_EXPAND_SZ
 
Moin Doreen,

Zitat:

Zitat von delphinia
Bekomme aber jedesmal eine Exception das nicht der Wert X geschreiben werden konnte...

und was sagt die Exception, warum der Wert nicht geschrieben werden konnte?

delphinia 16. Apr 2008 21:53

Re: REG_EXPAND_SZ
 
Hi die Exception sagt nichts aus ausser das der Wert "test4" nicht geschrieben werden konnte.
Entwicklungsumgebung und TestSystem sind nicht das selbe! habe auch schon mit MadExcept versucht mehr rauszufinde aber das sagt auch nur konnte Daten nicht schreiben für WertX

Das ist eine der Möglichkeiten weitere Test bei mir und ich hatte keine Zugriffsrechte laut Sysinternals Regmon


Hier mal meine vielen Ideen:
Delphi-Quellcode:
var
  _hKey: HKEY;
  _lRet: LongInt;
  _T, _Value: string;


  reg: TRegistry;
  S: string;
  hResult: HKEY;
  i: Integer;
  p_sValue: string;

  AccessMode: Cardinal;
  sKey: string;

begin
  _T := ('SOFTWARE\Classes\.bmp');
  _Value := '1';
  RegOpenKeyEx(HKEY_LOCAL_MACHINE, PChar(_T), 0, GetRegAccessMode(_T), _hKey);
  RegSetValueEx(_hKey, 'z1', 0, REG_EXPAND_SZ, @_Value[1], Length(_Value) + 1);
  RegCloseKey(_hKey);

  _T := ('SOFTWARE\Classes\.bmp');
  _Value := '1';
  RegOpenKeyEx(HKEY_LOCAL_MACHINE, PChar(_T), 0, KEY_ALL_ACCESS, _hKey);
  RegSetValueEx(_hKey, 'z2', 0, REG_EXPAND_SZ, @_Value[1], Length(_Value) + 1);
  RegCloseKey(_hKey);

  _T := ('SOFTWARE\Classes\.bmp');
  _Value := '1';
  RegOpenKeyEx(HKEY_LOCAL_MACHINE, PChar(_T), 0, KEY_WOW64_64KEY, _hKey);
  RegSetValueEx(_hKey, 'z3', 0, REG_EXPAND_SZ, @_Value[1], Length(_Value) + 1);
  RegCloseKey(_hKey);




  p_sValue := ICO_PATH + ',' + IntToStr(ICO_INDEX);

  sKey := '\SOFTWARE\Classes\.bmp';
  AccessMode := GetRegAccessMode(sKey);

  with TRegistry.Create(KEY_ALL_ACCESS) do
  begin
    try
      rootkey := HKEY_LOCAL_MACHINE;
      OpenKey('\SOFTWARE\Classes\.bmp', true);
      WriteString('test4', '0');
    finally
      free;
    end;
  end;


  p_sValue := ICO_PATH + ',' + IntToStr(ICO_INDEX);

  sKey := '\SOFTWARE\Classes\.bmp';
  AccessMode := GetRegAccessMode(sKey);

  with TRegistry.Create(KEY_WOW64_64KEY) do
  begin
    try
      rootkey := HKEY_LOCAL_MACHINE;
      OpenKey('\SOFTWARE\Classes\.bmp', true);
      WriteString('test5', '0');
    finally
      free;
    end;
  end;

Christian Seehase 16. Apr 2008 22:27

Re: REG_EXPAND_SZ
 
Moin Doreen,

oben schreibst Du HKEY_CLASSES_ROOT, unten HKEY_LOCAL_MACHINE\Software\Classes.
Muss es zwingend unter HKEY_LOCAL_MACHINE sein?
HKEY_CURRENT_USER\Software\Classes gibt es ja auch, und bildet zusammen mit HKEY_LOCAL_MACHINE\Software\Classes den HKEY_CLASSES_ROOT Key, wobei die Eintragungen unter HKEY_CURRENT_USER dort Vorrang haben, wenn Werte in beiden Zweigen vorkommen.

Looking4Clues 16. Apr 2008 22:30

Re: REG_EXPAND_SZ
 
Zitat:

Zitat von Looking4Clues
Zitat:

Zitat von delphinia
na da schein ich wohl nen Problem zu haben wo es keien Lösung gibt? hmmm das plöd

Plöt du nix sein akkliministardor?

Du willst nach "HKEY_LOCAL_MACHINE" schreiben!

mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:44 Uhr.
Seite 1 von 2  1 2      

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