Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   AutoStart für Delphi-Programme über Systemregistrierung (https://www.delphipraxis.net/86529-autostart-fuer-delphi-programme-ueber-systemregistrierung.html)

TOC 15. Feb 2007 13:39

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Hi!

Zitat:

Zitat von matashen
Nachdem jeder so seine eigenen Vorzüge in sachen Klassen Units etc hat, hier mein Vorschlag,

mach einfach alle Varianten, schon passt's für jeden

:dp:

Na, das wär´n Aufwand! Mein Vorschlag: Ihr habt den SourceCode! Spielt doch ein wenig damit herum! Wer ne Klasse draus machen will kann dies gerne tun und hier posten!

Und wenn ich Zeit finde bastel ich vielleicht doch noch ne Komponente daraus :stupid: !

Grüsse von TOC!

Luckie 15. Feb 2007 13:39

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Es fehlen aber noch einige Konfigurationsmöglichkeiten:
Delphi-Quellcode:
RootKey:=hKey_Local_Machine;
Was wenn der Autostart benutzerspezifisch sein soll?
Warum muss ich eine TForm Variable übergeben?
Was wenn ich anders auf einen Fehler reagieren will, als mit einer Messagebox?

Bei GetAutoStart:
Delphi-Quellcode:
Reg:=TRegistry.Create;
öffnest du den Schlüssel mit allen Rechten das ist unnötig, da du nur lesen willst. Und wenn du ihn mit allen Rechten öffnest, muss man selbst zum Lesen Administrator-Rechte haben in HKLM.

TOC 15. Feb 2007 13:50

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Hi!

Zitat:

Zitat von Luckie
Es fehlen aber noch einige Konfigurationsmöglichkeiten:
Delphi-Quellcode:
RootKey:=hKey_Local_Machine;
Was wenn der Autostart benutzerspezifisch sein soll?
Warum muss ich eine TForm Variable übergeben?
Was wenn ich anders auf einen Fehler reagieren will, als mit einer Messagebox?

Bei GetAutoStart:
Delphi-Quellcode:
Reg:=TRegistry.Create;
öffnest du den Schlüssel mit allen Rechten das ist unnötig, da du nur lesen willst. Und wenn du ihn mit allen Rechten öffnest, muss man selbst zum Lesen Administrator-Rechte haben in HKLM.

Gut, Ok, also das TForm muss ansich nur übergeben werden damit MessagBox modal das entsprechende Fenster blockt solange dei Fehlermeldung angezeigt wird. Da könnte man wirklich auch eine eigene Exception-Klasse definieren die der Programmierer in seinem Programm dann halt abfangen und die Fehlermeldung selber ausgeben müsste.

Ich hab versucht das ganze so einfach wie möglich zu machen, deshalb geben die Prozeduren selber die Fehlermeldung raus und in die Registrierung wird immer nur das Programm geschrieben/gelöscht das die Prozedur aufruft. Eben, so einfach wie möglich.

Werd mal überprüfen wie man einen Key nur mit Lese-Zugriff öffnen kann. XP ist in dem Punkt mit den Rechten wesentlich empfindlicher als mein Win98SE, da hast Du natürlich schon recht!

Grüsse von TOC!

Luckie 15. Feb 2007 13:52

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Gib mir noch eine halbe Stunde und ich habe die Klasse fertig. ;)

TOC 15. Feb 2007 14:03

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Hi!

Zitat:

Zitat von Luckie
Gib mir noch eine halbe Stunde und ich habe die Klasse fertig. ;)

Cool! Postest Du die dann hier auch?

Grüsse von TOC!

kalmi01 15. Feb 2007 14:24

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Hi Luckie,

Zeit iss um :mrgreen:

Luckie 15. Feb 2007 14:25

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Fast fertig.

TOC 15. Feb 2007 14:35

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Hi!

Zitat:

Zitat von Luckie
Fast fertig.

Gut Ding braucht Weile, lass Dir ruhig Zeit!

Sache mal, ich find nirgendwo in der D3 oder D7 Hilfe eine Erklärung wie man den RootKey mit "Nur-Lesen"-Rechten oder so öffnen kann. Gib mir bitte mal nen Tip falls Du weist wie das funzt.

Grüsse von TOC!

Luckie 15. Feb 2007 14:40

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Here we go. Unit mit Klasse im Anhang. Was noch fehlt ist das Erstellen einer Verknüpfung im AutoRun-Ordner des Startmenüs.

Anwendung:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ar               : TMpuAutorun;
begin
  ar := TMpuAutorun.Create;
  try
    try
      ar.AutoRun(True);
    except
      on E: Exception do
        ShowMessage(E.Message);
    end;
  finally
    ar.Free;
  end;
end;
Setzt man die Eigenschaften ExeFilename, RootKey und RunOnce nicht, werden die Standardeinstellungen genommen. Und die wäre für ExeFilename: ParamStr(0), RootKey: HKEY_CURRENT_USER und RunOnce: False.

AutoRun(True) setzt den Autostarteintrag und AutoRun(False) löscht ihn wieder. Kann er nicht gestzt oder gelsöcht werden, wird eine Exception ausgelöst, die man abfangen kann.

Thorben77 15. Feb 2007 14:41

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Zitat:

Zitat von TOC
Sache mal, ich find nirgendwo in der D3 oder D7 Hilfe eine Erklärung wie man den RootKey mit "Nur-Lesen"-Rechten oder so öffnen kann.

Such mal nach Delphi-Referenz durchsuchenAccess im Zusammenhang mit TRegistry.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 Uhr.
Seite 2 von 3     12 3      

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