AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

DWORD in Registry schreiben

Ein Thema von lukdelphias · begonnen am 20. Jul 2020 · letzter Beitrag vom 24. Jul 2020
Antwort Antwort
Seite 1 von 2  1 2   
lukdelphias

Registriert seit: 23. Jun 2020
50 Beiträge
 
Delphi 10.3 Rio
 
#1

DWORD in Registry schreiben

  Alt 20. Jul 2020, 17:04
Hallo liebesForum,

ich habe voreinen Wert der Registry zu ändern. Nach stundenlanger Probiererei gebe ich nun auf.
Ich weiß nicht mehr weiter. Ich bekomme es einfach nicht hin das der Registryeintrag geändert wird. Debuggen lässt sich das Programm ohne Probleme, spuckt keine Fehlermeldungen aus usw.
Hier der Code dazu:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Registry;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  reg : TRegistry;
begin
  reg := TRegistry.Create;
  try
    reg.RootKey := HKEY_CURRENT_USER;
    if reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System',true) then
    try
      reg.WriteInteger('DisableTaskMgr',1);
    finally
      reg.CloseKey;
    end;
  finally
    reg.Free;
  end;
end;

end.
Hat jemand eine Idee warum es nicht schreibt?

MfG
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.799 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: DWORD in Registry schreiben

  Alt 20. Jul 2020, 17:12
Vermutlich hast du keine Schreibrechte in dem Zweig (Policies). Prüf das doch einfach mal mit RegEdit nach.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.717 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: DWORD in Registry schreiben

  Alt 20. Jul 2020, 17:24
Zitat:
Vermutlich hast du keine Schreibrechte in dem Zweig.
Versuch mal mit deiner Funktion den geschriebenen Wert wieder auszulesen.

Bei fehlenden rechten kommt eingentlich eine Fehlermeldung,
aber eventuell landet dein Wert im VirtualStore, welchen es hier auch gibt, ebenso wie im Dateisystem.

https://docs.microsoft.com/en-us/win...virtualization
http://blog.m-ri.de/index.php/2007/0...chattenseiten/
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.602 Beiträge
 
Delphi 5 Professional
 
#4

AW: DWORD in Registry schreiben

  Alt 20. Jul 2020, 18:09
Auch wenn der Policies-Zweig im HKCU steht, haben Nutzer dort - aus gutem Grund - keine Schreibrechte. In diesem Zweig dürfen nur Administratoren und SYSTEM schreiben. Willst du das mit deinem Delphi-Programm machen, musst du (bei aktivierter UAC) höhere Rechte bzw. Adminrechte anfordern.

Grüße
Dalai
  Mit Zitat antworten Zitat
lukdelphias

Registriert seit: 23. Jun 2020
50 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: DWORD in Registry schreiben

  Alt 21. Jul 2020, 07:16
Guten Morgen,

Danke für die Antworten.
Rechte dort zu schreiben habe ich. Über regedit und andere Möglichkeiten geprüft.
Das Problem hat sich aber jetzt sowieso geklärt löse das ganze jetzt anders.

Danke trotzdem für die Hilfe.
Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.602 Beiträge
 
Delphi 5 Professional
 
#6

AW: DWORD in Registry schreiben

  Alt 21. Jul 2020, 09:18
Rechte dort zu schreiben habe ich. Über regedit und andere Möglichkeiten geprüft.
Regedit fordert standardmäßig höhere Rechte an (wegen requestedExecutionLevel=highestAvailable im Manifest). Dadurch kann man damit logischerweise in diesem Zweig schreiben. Dein Delphi-Programm wird aber wahrscheinlich nicht höhere Rechte haben oder anfordern - und hat daher die Rechte nicht. Wenn du dein Programm per Rechtsklick als Administrator ausführst, bekommt es die gleichen Rechte wie Regedit und wird dann dort schreiben können.

Mit welchen "anderen Möglichkeiten" hast du denn geprüft, ob Schreibrechte vorhanden sind?

Zitat:
Das Problem hat sich aber jetzt sowieso geklärt löse das ganze jetzt anders.
Nur interessehalber: Wie hast du es jetzt gelöst?

Grüße
Dalai
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.799 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: DWORD in Registry schreiben

  Alt 21. Jul 2020, 09:22
Mit welchen "anderen Möglichkeiten" hast du denn geprüft, ob Schreibrechte vorhanden sind?
Würde mich auch interessieren. Der reguläre Weg wäre, im RegEdit das Kontext-Menü des Policies-Eintrag aufzurufen und dort unter Berechtigungen nachzusehen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
lukdelphias

Registriert seit: 23. Jun 2020
50 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: DWORD in Registry schreiben

  Alt 21. Jul 2020, 10:02
Die Anwendung hat die Rechte dort zu schreiben.
Gelöst habe ich es jetzt über eine andere Funktion für das schreiben der Registry hier aus dem Forum. Diese Methode funktionierte komischerweise ohne Probleme.

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.602 Beiträge
 
Delphi 5 Professional
 
#9

AW: DWORD in Registry schreiben

  Alt 21. Jul 2020, 10:09
Die Anwendung hat die Rechte dort zu schreiben.
Das heißt, dein Programm fordert (z.B. per Manifest) höhere Rechte an, der Benutzer muss also die UAC bestätigen?

Nur um das nochmal klarzumachen: Ohne Manifest mit Abschnitt trustInfo/requestedExecutionLevel (mit passendem Wert) fordert kein Programm höhere Rechte an, mal von Ausnahmen wie Dateinamen und/oder Versionsinformationen mit bestimmten Schlüsselwörtern abgesehen. Höhere Rechte sind aber zum Schreiben in diesem Zweig erforderlich.

Zitat:
Gelöst habe ich es jetzt über eine andere Funktion für das schreiben der Registry hier aus dem Forum.
Welche Funktion wäre das?

Grüße
Dalai
  Mit Zitat antworten Zitat
lukdelphias

Registriert seit: 23. Jun 2020
50 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: DWORD in Registry schreiben

  Alt 21. Jul 2020, 10:12
https://www.delphipraxis.net/79110-r...erstellen.html

diese Funktion von ArmyMan funktioniert bei meinem Programm sehr gut
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf