![]() |
DWORD in Registry schreiben
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:
Hat jemand eine Idee warum es nicht schreibt?
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. MfG |
AW: DWORD in Registry schreiben
Vermutlich hast du keine Schreibrechte in dem Zweig (Policies). Prüf das doch einfach mal mit RegEdit nach.
|
AW: DWORD in Registry schreiben
Zitat:
Bei fehlenden rechten kommt eingentlich eine Fehlermeldung, aber eventuell landet dein Wert im VirtualStore, welchen es hier auch gibt, ebenso wie im Dateisystem. ![]() ![]() |
AW: DWORD in Registry schreiben
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 |
AW: DWORD in Registry schreiben
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ß |
AW: DWORD in Registry schreiben
Zitat:
Mit welchen "anderen Möglichkeiten" hast du denn geprüft, ob Schreibrechte vorhanden sind? Zitat:
Grüße Dalai |
AW: DWORD in Registry schreiben
Zitat:
|
AW: DWORD in Registry schreiben
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 |
AW: DWORD in Registry schreiben
Zitat:
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:
Grüße Dalai |
AW: DWORD in Registry schreiben
![]() diese Funktion von ArmyMan funktioniert bei meinem Programm sehr gut:thumb: |
AW: DWORD in Registry schreiben
Aber wo ist der Unterschied zu deinem Code? Außer HKCU <> HKLM und einem anderen Pfad sehe ich keinen. Daher ist mir weiterhin unklar, warum das Schreiben in dem einen Fall funktionieren soll, im anderen aber nicht.
Grüße Dalai |
AW: DWORD in Registry schreiben
Verstehen tue ich es ehrlich gesagt auch nicht. Allerings funktioniert es was will man mehr. An die weitere Fehlersuche gehe ich dann nächste Woche vielleicht kann ich dann noch etwas dazu sagen.
Gruß |
AW: DWORD in Registry schreiben
Zitat:
|
AW: DWORD in Registry schreiben
Da hast du natürlich recht. Aber wie schon gesagt, an die tieferliegende Fehlersuche geht es nächste Woche.
Gruß |
AW: DWORD in Registry schreiben
Das Warum kann schnell sehr wichtig werden...
Es kann auch nur Zufall sein, dass es geht. z.B. ein Bug im Windows, den Microsoft nächste Version behebt. :stupid: |
AW: DWORD in Registry schreiben
Stimmt ist auch möglich. Aber das ist auch halb so wild. Das Programm ist kein superwichtiges Programm. Es wird zwar hier in der Firma verwendet aber man kann auch darauf verzichtet bzw das Programm umgehen.
|
AW: DWORD in Registry schreiben
@lukdelphias wenn die das mit den Rechten noch nicht ganz klar ist, auf Coding Bott gibt es etwas was in die Richtung geht:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 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 by Thomas Breitkreuz