AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Registry Lesen und Schreiben Win 7 64 Bit
Thema durchsuchen
Ansicht
Themen-Optionen

Registry Lesen und Schreiben Win 7 64 Bit

Ein Thema von MCOP2001DE · begonnen am 2. Okt 2012 · letzter Beitrag vom 5. Okt 2012
Antwort Antwort
MCOP2001DE

Registriert seit: 19. Jun 2004
89 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Registry Lesen und Schreiben Win 7 64 Bit

  Alt 2. Okt 2012, 07:44
Hallo

ich sitzt jetzt schon seid 2 Wochen daran ein Projekt auch 64bit Fähig zu machen.
Mein Problem ist das die Daten nicht aus der Registry gelesen werden.

mein Code ist
Code:
begin
 with TRegistry.Create do
   begin
     try
       RootKey := HKEY_LOCAL_MACHINE;
       if OpenKey('\SOFTWARE\Moeller Computer\MED Base\', false) then
       begin
        MyUser := ReadString('Users');                        // Zeilen werden übersprungen
        MyPassword := ReadString('Password');
        MyDatabasename := ReadString('Database');
        Myservername := ReadString('Server');
        MyWorkstationName := ReadString('Workstation');
        CloseKey;
       end;                                                   // wird wieder bearbeitet
    finally
     Free;
    end;
   end;
  with TRegistry.Create(KEY_ALL_ACCESS OR KEY_WOW64_64KEY) do
   begin
     try
       RootKey := HKEY_LOCAL_MACHINE;
       if OpenKey ('\Software\Moeller Computer\MED Base\', false) then
       begin
        MyUser := ReadString('Users');
        MyPassword := ReadString('Password');
        MyDatabasename := ReadString('Database');
        Myservername := ReadString('Server');
        MyWorkstationName := ReadString('Workstation');
        CloseKey;
       end;
    finally
       free;
     end;
   end;

    Verbindung_Herstellen;
end;
2. gibt es eine Möglichkeit das beim schreiben in die Registry die Admin-Rechte vom Programm zugewiesen werden?

Mcop2001de
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Registry Lesen und Schreiben Win 7 64 Bit

  Alt 2. Okt 2012, 08:01
Da du ja nur lesend zugreifen willst, würde ja ein Nur-Lesen Zugriff ausreichen: Regitry.OpenKeyReadOnly()
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#3

AW: Registry Lesen und Schreiben Win 7 64 Bit

  Alt 2. Okt 2012, 08:01
Oder gleich mit TRegistry.Create(KEY_READ) instanzieren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
MCOP2001DE

Registriert seit: 19. Jun 2004
89 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: Registry Lesen und Schreiben Win 7 64 Bit

  Alt 2. Okt 2012, 08:48
Danke für die schnelle Antwort

bei beiden Varianten werden die Zeilen die ich im Code mit dem Text makiert habe überspungen.
ich habe auch in der Registry den Pfad überprüft der Stimmt HKEY_LOCAL_MACHINE\Software\Wow6432Node\Moeller Computer\MED Base.
Wenn ich in einzelschritten des Programm ablaufen lasse werden die Zeilen 8-13 übersprungen.
was kann das sein?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

AW: Registry Lesen und Schreiben Win 7 64 Bit

  Alt 2. Okt 2012, 08:59
Und bei KEY_READ OR KEY_WOW64_64KEY?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Registry Lesen und Schreiben Win 7 64 Bit

  Alt 2. Okt 2012, 10:14
Probier' mal so in Verbindung mit #3.

Delphi-Quellcode:
function IsWin7: boolean;
var
  osVerInfo: TOSVersionInfo;
  majorVersion, minorVersion: integer;
begin
  Result:= false;
  osVerInfo.dwOSVersionInfoSize:= SizeOf(TOSVersionInfo);
  if GetVersionEx(osVerInfo) then
  begin
    minorVersion:= osVerInfo.dwMinorVersion;
    majorVersion:= osVerInfo.dwMajorVersion;
    if osVerInfo.dwPlatFormId = VER_PLATForm_WIN32_NT then
      if (majorVersion = 6) and (minorVersion = 1) then
        Result:= true;
  end;
end;

function IsWow64: boolean;
type
  TIsWow64Process =
    function(Handle: Windows.THandle; var Res: Windows.BOOL): Windows.BOOL; stdcall;
var
  IsWow64Result: Windows.BOOL;
  IsWow64Process: TIsWow64Process;
begin
  Result:= False;
  if IsWin7 then
  begin
    IsWow64Process :=
      Windows.GetProcAddress(Windows.GetModuleHandle('kernel32'), 'IsWow64Process');
    if Assigned(IsWow64Process) then
      try
        IsWow64Process(Windows.GetCurrentProcess, IsWow64Result);
        Result:= IsWow64Result;
      except
        Result:= False;
      end;
  end;
end;

function GetRegPath: string;
var
  Substr: string;
begin
  if IsWow64 then
    Substr:= 'Wow6432Node\'
  else
    Substr:= '';
  Result:= 'SOFTWARE\' + Substr + 'Moeller Computer\MED Base\'
end;
  Mit Zitat antworten Zitat
MCOP2001DE

Registriert seit: 19. Jun 2004
89 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

AW: Registry Lesen und Schreiben Win 7 64 Bit

  Alt 5. Okt 2012, 07:29
Danke Bjoerk

jetzt hats geklappt.
gibt es den auch eine Möglichkeit in die Registry zu schreiben ohne das der User Adminrechte besitzt?

Mcop2001de
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

AW: Registry Lesen und Schreiben Win 7 64 Bit

  Alt 5. Okt 2012, 08:49
Natürlich, aber eben nicht in jeden Zweig. HKLM ist ja benutzerübergreifend, da darf mit Recht nicht jeder einfach so schreiben. Normalerweise werden dort Standardwerte im Rahmen eines Setups hinterlegt, welches ja in der Regel mit Adminrechten ausgeführt wird. Benutzerbezogene Dinge können ja dann unter HKCU hinterlegt werden, dort sollte der aktuelle Benutzer Schreibrechte besitzen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 16:39 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