Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Autostart Funktion - Ordner bei Windows-Start geöffnet (https://www.delphipraxis.net/63387-autostart-funktion-ordner-bei-windows-start-geoeffnet.html)

Yheeky 17. Feb 2006 22:47


Autostart Funktion - Ordner bei Windows-Start geöffnet
 
Hi,

ich habe bei meinem Programm eine Autostart Funktion eingebaut. Mein Programm wird über ein Setup (erstellt mit InnoSetup) installiert. Nun habe ich das Problem, dass beim Windows-Start der Ordner geöffnet wird, in dem sich das Programm befindet. Das komische ist, dass ich in der Registry unter HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run nichts finden kann. Wo kann ich denn sonst noch gucken?

Ruediw 18. Feb 2006 02:15

Re: Autostart Funktion - Ordner bei Windows-Start geöffnet
 
Ohne weitere Kenntnisse (Betriebsystem, Version von Innosetup) und wie Du das Programm installiert hast (Konfiguration von Innosetup) kann man Dir wahrscheinlich keinen Rat geben.

Hast Du den Effekt zum ersten Mal ? Hast Du die neuste Version von ImmoSetup ?
Hast Du mal dort im Forum nachggeschaut ? Hast Du heir mal etwas Code ?
Installierst Du zum ersten Mal ein Program ?

Christian Seehase 18. Feb 2006 03:09

Re: Autostart Funktion - Ordner bei Windows-Start geöffnet
 
Moin Yheeky,

schau doch mal unter HKEY_CURRENT_USER.
Den Run-Key gibt es i.d.R. auch dort.
Falls der Eintrag dort ist:
Vielleicht musst Du noch zwischen einer Installation für einen User (HKEY_CURRENT_USER) und für alle User (HKEY_LOCAL_MACHINE) unterscheiden.

Yheeky 18. Feb 2006 11:07

Re: Autostart Funktion - Ordner bei Windows-Start geöffnet
 
Mhmm, also bei HKEY_CURRENT_USER konnte ich nichts finden.

Vielleicht hilft euch dieser Code weiter. So lasse ich meine Anwendung in die Registry eintragen und wieder entfernen:

Delphi-Quellcode:
// Anwendung in die Registry eintragen...
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;

// Anwendung aus der Registry entfernen...
procedure DelAppFromRun(RunName: string);
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  with Reg do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
    if ValueExists(RunName) then DeleteValue(RunName);
    CloseKey;
    Free;
  end;
end;
Vielleicht hat der Code hier damit zu tun?

ichbins 18. Feb 2006 11:43

Re: Autostart Funktion - Ordner bei Windows-Start geöffnet
 
trägst du das in deiner app ein?


DIESER CODE IST TÖDLICH

bereits unter Win98 (oder wars 95?) haben nur noch Admins die Zugriffstrechte auf LOCAL_MACHINE.

Yheeky 18. Feb 2006 11:46

Re: Autostart Funktion - Ordner bei Windows-Start geöffnet
 
Okay...wie soll ich sonst einen Autostart realisieren?

ichbins 18. Feb 2006 11:47

Re: Autostart Funktion - Ordner bei Windows-Start geöffnet
 
indem du den key HKEY_CURRENT_USER verwendest. Oder das gute alte Startmenü.

Luckie 18. Feb 2006 12:00

Re: Autostart Funktion - Ordner bei Windows-Start geöffnet
 
Zitat:

Zitat von ichbins
trägst du das in deiner app ein?


DIESER CODE IST TÖDLICH

bereits unter Win98 (oder wars 95?) haben nur noch Admins die Zugriffstrechte auf LOCAL_MACHINE.

Seit wann kennz Windows 98 eine Rechtevergabe? :shock: Unter Windows 98 gibt es keine Benutzer mit unterchiedlichen Rechten.

Christian Seehase 18. Feb 2006 12:30

Re: Autostart Funktion - Ordner bei Windows-Start geöffnet
 
Moin Yheeky,

Du solltest aber auch prüfen, ob die jeweiligen Aufrufe auch erfolgreicht waren, ausserdem fehlen die Resourcenschutzblöcke, z.b. so:

Delphi-Quellcode:
// Anwendung in die Registry eintragen...
procedure DoAppToRun(RunName, AppName: string);
var Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if not Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True) then exit;
    try
      Reg.WriteString(RunName, AppName);
    finally
      Reg.CloseKey;
    end;
  finally
    FreeAndNil(Reg);
  end;
end;
Ausserdem gehören solche Registrierungen auch ins Setup, und nicht ins Programm ;-)

Yheeky 18. Feb 2006 20:05

Re: Autostart Funktion - Ordner bei Windows-Start geöffnet
 
Okay, danke für den Code. Werde es dann so machen, dass man es per Setup einstellt :thumb:

Zurück zum eigentlichen Thema: Wie kann ich denn nun verhindern, dass beim Systemstart der Ordner im Explorer geladen wird? Was auffällt ist, dass dies vor dem Laden der TNA Icons bzw. beim Laden der ersten TNA Icons passiert. In der Registry bin ich nicht fündig geworden, aber dort müsste es doch stehen oder? Gibt´s da noch ne andere Möglichkeit?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr.
Seite 1 von 2  1 2      

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