![]() |
Registry DWORD wert erstellen
hallo!
Ich arbeite gerade an einem tool wo ich mehrer buttons habe und bei einem soll er mir in der registrie einen dword wert erstellen. [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Win dows\System\Shutdown] "HibernateAsDefault"=dword:00000001 "ShowHibernateButton"=dword:00000001 habe allerdings keine ahnung wie ich das machen soll einen normalen schlüssel zu erstellen ist ja kein prob aber ich brauche dafür diesen dword wert kann mir da einer helfen! |
Re: Registry DWORD wert erstellen
DWORD=Integer
|
Re: Registry DWORD wert erstellen
Wie jetzt kann damit gerade nichts anfangen sorry aber habe echt kein plan! :gruebel:
das ist momentan mein stand nur als test
Delphi-Quellcode:
procedure TWinForm.Insatll_Click(sender: System.Object; e: System.EventArgs);
var key : Registrykey; begin key := Registry.LocalMachine.OpenSubKey('Software', True); key.SetValue('test','1'); end; |
Re: Registry DWORD wert erstellen
Ein DWORD kannst du als Integer anlegen.
|
Re: Registry DWORD wert erstellen
Zitat:
Sitze hier mit nen dicken delphi buch aber da steht es halt auch nicht genau drin wie ich das machen muss hoffe ja das meine grund idee richtig ist weis aber halt nicht wie ich denn schlüssel als DWORD speicher eine richtige beschreibung wäre nett. |
Re: Registry DWORD wert erstellen
Hallo
Ich würde es so machen:
Delphi-Quellcode:
Greetz
uses Registry,Windows;
... procedure TForm1.Button1Click(Sender: TObject); var reg : TRegistry; begin try reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; reg.OpenKey('SOFTWARE\Policies\Microsoft\Windows\System\Shutdown',true); reg.WriteInteger('HibernateAsDefault',1); reg.WriteInteger('ShowHibernateButton',1); finally reg.Free; end; end; [edit] "uses Windows" eingebaut [/edit] |
Re: Registry DWORD wert erstellen
erstmal danke aber bei
Delphi-Quellcode:
zeigt er mir Undefinierter Bezeichner an hatte ich
reg.RootKey := HKEY_LOCAL_MACHINE;
auch schon probiert! habe es 1:1 kopiert |
Re: Registry DWORD wert erstellen
Ach ja...
Delphi-Quellcode:
Greetz
uses Windows
|
Re: Registry DWORD wert erstellen
ja das scheint jetzt io zu sein aber an anderer stelle soll er mir ne messagebox aufrufen
Delphi-Quellcode:
nur jetzt sagt er mir nicht genug wirkliche parameter :wall: :wall: :wall:
MessageBox.[u]Show[/u]('Sie haben nichts Ausgewählt', 'Setup', MessageBoxButtons.Ok,
Messageboxicon.Information, Messageboxdefaultbutton.button1) |
Re: Registry DWORD wert erstellen
Mach es do so
Delphi-Quellcode:
Greetz
ShowMessage('Sie haben nichts Ausgewählt');
|
Re: Registry DWORD wert erstellen
ne funktioniert auch nicht! :gruebel:
er soll mir ja die buttons und so noch anzeigen aber das klappt ja da nicht. |
Re: Registry DWORD wert erstellen
Also Dein Code oben, gefällt mir ganz und gar nicht.
1. Das Objekt wird erst im try-Block erzeugt -> schlägt dies fehl, wird es trotzdem freigegeben. -> Es wird ein Objekt freigegeben, das möglicherweise nicht erstellt wurde. Besser:
Delphi-Quellcode:
2.
reg := TRegistry.Create;
try // do something finally reg.Free; end; Was geöffnet wird, sollte zum Schluss auch wieder geschlossen werden - am Besten das ganze in noch einem try-finally-Block. Außerdem kann das Öffnen auch fehlschlagen, z.B. wenn es den Schlüssel in der Registry nicht gibt - dafür gibt es eine if-Abfrage:
Delphi-Quellcode:
Das ganze sähe dann so aus:
if reg.OpenKey(...) then
try // do something finally reg.CloseKey; end;
Delphi-Quellcode:
uses Windows, Registry;
... procedure TForm1.Button1Click(Sender: TObject); var reg : TRegistry; begin reg := TRegistry.Create; try reg.RootKey := HKEY_LOCAL_MACHINE; if reg.OpenKey('SOFTWARE\Policies\Microsoft\Windows\System\Shutdown',true) then try reg.WriteInteger('HibernateAsDefault',1); reg.WriteInteger('ShowHibernateButton',1); finally reg.CloseKey; end; finally reg.Free; end; end; //Edit: zur MessageBox (hat zwar nix mehr mit dem Thema zu tun, aber was soll's...): verwende mal Application.MessageBox, wie Du da die Buttons und Symbole als Parameter übergibst, steht in der Delphi-Hilfe. |
Re: Registry DWORD wert erstellen
der ganze spaß sieht so aus
Delphi-Quellcode:
vieleicht hilft ja das kann nur wieder holen bin halt nen nob application.messagebox funzt auch nicht naja mal gucken klappt schon irgendwie vielen dank
unit WinForm;
interface uses System.Drawing, System.Collections, System.ComponentModel, System.Windows.Forms, System.Data; ... uses System.Diagnostics, System.IO, registry, Windows; procedure TWinForm.Beenden_Click(sender: System.Object; e: System.EventArgs); begin case MessageBox.Show('Wollen sie das Setup wirklich Beenden', 'Setup', MessageBoxButtons.YesNo, Messageboxicon.Warning, Messageboxdefaultbutton.button1) of System.Windows.Forms.DialogResult.Yes : close; end; end; procedure TWinForm.Zurück_Click(sender: System.Object; e: System.EventArgs); begin Panel1.Hide; ListBox1.items.Clear; end; procedure TWinForm.Insatll_Click(sender: System.Object; e: System.EventArgs); var reg : TRegistry; begin try reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; reg.OpenKey('SOFTWARE\Policies\Microsoft\Windows\System\Shutdown',true); reg.WriteInteger('HibernateAsDefault',1); reg.WriteInteger('ShowHibernateButton',1); finally reg.Free; end; end; procedure TWinForm.Beenden1_Click(sender: System.Object; e: System.EventArgs); begin case MessageBox.show('Wollen sie das Setup wirklich Beenden', 'Setup', MessageBoxButtons.YesNo, Messageboxicon.Warning, Messageboxdefaultbutton.button1) of System.Windows.Forms.DialogResult.Yes : close; end; end; end. |
Re: Registry DWORD wert erstellen
Hier werden zwei Dinge durcheinander geworfen: .NET mit WinForms und Win32 mit der VCL.
Mit was prgrammierts du denn jetzt? Anscheinend mit Delphi for .NET WinForms. Also musst du auch die entsprechende Assembly einbinden und die entsprechenden methoden zum Erstellen eine Registry Eintrages. @Armyman: Die Klasse TRegistry befindet sich in der Unit Registry und nicht in der Unit Windows. |
Re: Registry DWORD wert erstellen
Zitat:
reg.RootKey := HKEY_LOCAL_MACHINE; zeigt er mir ohne "unit windows" einen fehler. |
Re: Registry DWORD wert erstellen
ich kann mich da nur auf die hilfe verlassen habe echt keinen plan
kann ja denn gesammten text mal einstellen zum zerpflücken |
Re: Registry DWORD wert erstellen
Liste der Anhänge anzeigen (Anzahl: 1)
ist zwar bestimmt nicht schön aber soll ja nur funktionieren
sry |
Re: Registry DWORD wert erstellen
Ich sagte doch schon, du brauchst .NET Code dafür. Guck doch einfach mal in der Hilfe, wie man in die Registry schreibt.
Und beim nächsten Mal hänge bitte den Code als Datei an, wenn er schon so lang ist. |
Re: Registry DWORD wert erstellen
Dann binde doch beides ein.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 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-2025 by Thomas Breitkreuz