Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Registry Einträge unter Vista (https://www.delphipraxis.net/117620-registry-eintraege-unter-vista.html)

SaFu 22. Jul 2008 08:44


Registry Einträge unter Vista
 
Tach Leutz

Wie es meine Überschrift sagt versuche ich Einträge, für den Autostart meines Programmes in die Registry unter Vista zu schreiben, leider haut das so nicht hin.

Delphi-Quellcode:
procedure DoAppToRun(RunName, AppName: string);
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  with Reg do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
    WriteString(RunName, AppName);
    CloseKey;
    Free;
  end;
end;
Delphi-Quellcode:
// Add app, Anwendung aufnehmen...
DoAppToRun('Programm', 'C:\Programs\XYZ\Program.exe');
Unter XP ist das Super, kann mir einer vielleicht veraten wo ich das unter Vista hinschreiben muss oder hat jemand ne andere Lösung.

Ein Ansatz wär noch eine Vernüpfung in den Ordner Autostart zulegen, aber das hat nicht ganz funktioniert bei mir, desahlb Registry.

Danke euch schonmal im voraus

DeddyH 22. Jul 2008 08:49

Re: Registry Einträge unter Vista
 
Schreib das mal ein wenig um und steppe dann durch, dann solltest Du sehen, wo es hakt:
Delphi-Quellcode:
procedure DoAppToRun(RunName, AppName: string);
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  with Reg do
  try
    RootKey := HKEY_LOCAL_MACHINE;
    if OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True) then
      begin
        WriteString(RunName, AppName);
        CloseKey;
      end;
  finally
    Free;
  end;
end;
Ungetestet.

Die Muhkuh 22. Jul 2008 08:55

Re: Registry Einträge unter Vista
 
Hi,

das Problem dürfte HKEY_LOCAL_MACHINE sein, ohne Adminrechte darf man dort nicht schreiben (imho). Schreib es mal in HKEY_CURRENT_USER.

Luckie 22. Jul 2008 20:33

Re: Registry Einträge unter Vista
 
Hinzukommt die Virtualisierung bei 32-Bit Programmen unter 64-Bit Vista.

Bernhard Geyer 22. Jul 2008 20:40

Re: Registry Einträge unter Vista
 
Ich tipp für beides auf die Virtualisierung von Dateisystem + Registry.

Übrigens wird das auch nicht unter NT/2000/XP/2003 funktionieren wenn der User keine lokalen Adminrechte hat (z.B. Mitglieder der Gruppe "Benutzer"/"Gäste" und nicht "Hauptbenutzer

Berlinermauer 22. Jul 2008 20:45

Re: Registry Einträge unter Vista
 
zumal

C:\Programs\XYZ\Program.exe

unter Vista
C:\Programm Files\XYZ\Program.exe sein MUSSS !!

es ist aber nicht klug wenn jemand es dann unter XP startet.

Wenn dann jemand das Deutsch hat auch nichts.

Es gibt die "UMGEBUNGSVARIABLEN" geb z.b in die cmd line von xp/vista und co :

echo %systemroot%\%Programmdir%\XYZ\Program.exe ein

weiß nicht obs programdir heißt aber so ist das auf jeden fall

Bernhard Geyer 22. Jul 2008 20:55

Re: Registry Einträge unter Vista
 
Zitat:

Zitat von Berlinermauer
zumal

C:\Programs\XYZ\Program.exe

unter Vista
C:\Programm Files\XYZ\Program.exe sein MUSSS !!

Nicht unbedingt. Es könnte u.u. auch mit C:\Programme funktionieren da die übersetzten Pfadangaben teilweise auch funktionieren. Besser ist es aber per API-Befehl den korrekten Pfad sich geben lässt.[/quote]

SaFu 22. Jul 2008 20:57

Re: Registry Einträge unter Vista
 
Also so wie es DaddyH und Die Muhkuh geschrieben haben funktioniert es wunderbar unter vista mit UAC für alle benutzer und auch noch unter XP

Danke schön


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz