![]() |
Andere Codevariante für Registryeintragung ??
hallo,
gibt für diesen code auch eine andere variante, weil auf einmal funzt dieser code bei mir nicht mehr ( proggi in den autostart )
Code:
mfg vader
procedure TForm1.FormCreate(Sender: TObject);
var MyReg:TRegistry; begin MyReg:=TRegistry.Create; MyReg.Rootkey:=hkey_local_machine; MyReg.Openkey('Software\Microsoft\Windows\CurrentVersion\Run',true); MyReg.WriteString('Works',Application.ExeName); MyReg.CloseKey; MyReg.Free; end; |
Re: Andere Codevariante für Registryeintragung ??
Könnte es damit zusammenhängen, dass du ein NT-System hast (NT, 2000 oder XP), und dass du dieses Mal dein Programm nicht als Admin startest? In dem Fall scheitert´s an den Rechten.
Mir war, als hätte ich erst kürzlich dazu eine Variante geschrieben, die die Rechte berücksichtigt. *denk und such* yeah, there it ![]() |
Re: Andere Codevariante für Registryeintragung ??
hallo
hab den code probiert aber es kommt der fehler: [Fehler] Unit1.pas(36): Undefinierter Bezeichner: 'IsAdmin'
Code:
procedure Autostart(const fForAllUsers: boolean = true);
const RootKey : array[boolean]of HKEY = (HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE); var reg : TRegistry; begin reg := TRegistry.Create; if(reg <> nil) then try reg.RootKey := RootKey[IsAdmin and fForAllUsers]; if(reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', true)) then try reg.WriteString('Programm-Name', paramstr(0)); finally reg.CloseKey; end; finally free; end; end; und noch was, wo kommt der code hin ich hab 's in formcreate hineinkopiert mfg vader mfg |
Re: Andere Codevariante für Registryeintragung ??
Entschuldige, aber das kommt vom blinden Kopieren und "Nicht-Lesen". Dabei steht in dem gelinkten Beitrag groß drunter:
Zitat:
|
Re: Andere Codevariante für Registryeintragung ??
hallo,
das habe ich ja gelesen aber da komm ich zu einige beiträge, ich weiß nicht was du meinst , "du benötigst lediglich Is Admin von Nico ?????? mfg vader |
Re: Andere Codevariante für Registryeintragung ??
Das ist ein Suchlink, der alle Beiträge auflistet, in denen das magische Wort "IsAdmin" vorkommt. Wenn du dir mal ein bisschen Zeit nimmst, dann findest du die komplette Funktion. Als Tipp: gaaaaaaaaaaaanz unten in der Suchliste. :roll:
|
Re: Andere Codevariante für Registryeintragung ??
hallo mathias,
das heißt also das dieser code nur funzt wenn ich admin bin ? un mit dem link auf den anderen code kann ich herausfinden ob ich adminrechte habe mfg vader |
Re: Andere Codevariante für Registryeintragung ??
:cry: Wie wäre es denn mal mit Nachdenken? Ich meine, so schwer kann das doch nicht sein. Ansonsten, ohne dir zu nahe treten zu wollen, wäre ein Grundlagen-Tutorial oder -Buch vllt. besser. Wenn du dir das mal anschaust:
Zitat:
Und das "sofern möglich" wird in dieser Zeile definiert: Zitat:
Zitat:
Edit: Ich hätte es auch mit if machen können, dann wäre es vllt. deutlicher gewesen:
Delphi-Quellcode:
Das bool-Array macht also das gleiche wie diese if-Prüfung, nur dass du eben kein if/else benötigst.
if IsAdmin and fForAllUsers then
reg.RootKey := HKEY_LOCAL_MACHINE else reg.RootKey := HKEY_CURRENT_USER; Das ist das Geheimnis des Codes, und Ja: Mit der Funktion "IsAdmin" kannst du herausfinden ob du Admin-Rechte hast. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 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