![]() |
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 13:22 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