Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verknüpfung in Autostart anlegen (https://www.delphipraxis.net/55634-verknuepfung-autostart-anlegen.html)

maximus Caesar 24. Okt 2005 17:23


Verknüpfung in Autostart anlegen
 
Hallo!
Ich möchte in mein PRogramm eine CHeckbox einfügen, die Automatisch eine Verknüpfung in AUtostart erstellt bzw. Löscht.
Ich habe bisher noch keinen passenden Beitrag gefunden.
Wenn möglich möchte ich keine Unit verwenden, die nicht bei Delphi mitgeliefert ist.

Kann mir jemand sagen, wie ich das machen kann?
Danke!

Evian 24. Okt 2005 17:32

Re: Verknüpfung in Autostart anlegen
 
Hallöchen,

also hier wird das ganz Gut erklärt: Autostart realisieren
Das funktioniert ohne großen Aufwand und ohne externe Units oder Klassen.

gruß

Evan

Chegga 24. Okt 2005 17:37

Re: Verknüpfung in Autostart anlegen
 
Hi,

Zitat:

Zitat von maximus Caesar
Ich habe bisher noch keinen passenden Beitrag gefunden.

Dann schaue doch öfters in den Code-Library vorbei. :wink:

MfG Marc

maximus Caesar 24. Okt 2005 17:39

Re: Verknüpfung in Autostart anlegen
 
Ich möchts eigentlich ohne Registry, nur mit einer normalen Verknüpfung im Ordner "Autostart" aber wenns mit Registry einfacher iss, dann mach ichs so.

Chegga 24. Okt 2005 17:48

Re: Verknüpfung in Autostart anlegen
 
Hi,

wenn du es ohne einen Eintrag in der Registry möchtest,
dann erstelle eine Verknüpfung im Autostart-Ordner. :stupid:

MfG Marc

maximus Caesar 24. Okt 2005 17:59

Re: Verknüpfung in Autostart anlegen
 
Genau darum geht es!
Ich möchte wissen, wie ich das machen kann!

SirThornberry 24. Okt 2005 18:03

Re: Verknüpfung in Autostart anlegen
 
das Problem ist den Autostartordner zu finden. Denn SHGetSpecialFolderLocation funktioniert im Zusammenhang mit CSIDL_ALTSTARTUP funktioniert nicht (der Funktionsaufruf ist nicht erfolgreich (false)). Selbst mit CSIDL_FLAG_CREATE kommt false zurück. Das Hauptproblem ist also den Startmenüordner zu ermitteln.

[Edit]
Ok, war die falsche konstante - so gehts
Delphi-Quellcode:
uses shlobj
[...]
function GetAutorunPath: String;
var LPidl: PItemIDList;
    LPath: Array[0..MAX_PATH] of Char;
begin
  if SUCCEEDED(SHGetSpecialFolderLocation(0, CSIDL_STARTUP, LPidl)) then
  begin
    SHGetPathFromIDList(LPidl, @LPath);
    result := String(LPath);
  end else
    result := '';
end;
wie man eine Verknüpfung erstellt lässt sich sicher auch noch herausfinden

@MathiasSimmack: Ich würd mich ja jetzt bedanken *höhö* aber hab es bevor ich deinen Beitrag hinter meinem gelesen hab bei google gefunden... :mrgreen:

[Edit2]
Hier jetzt noch der Link wie man eine Verknüpfung erstellt: http://www.dsdt.info/tipps/?id=121

MathiasSimmack 24. Okt 2005 18:04

Re: Verknüpfung in Autostart anlegen
 
Ich hätte ja auch CSIDL_STARTUP verwendet. :stupid:

maximus Caesar 24. Okt 2005 18:17

Re: Verknüpfung in Autostart anlegen
 
Danke!
Werd ich gleich ausprobieren!

Edit:
Kann man auch den allgemeinen Autostartordner, also für alle Benutzer finden?

SirThornberry 24. Okt 2005 18:23

Re: Verknüpfung in Autostart anlegen
 
natürlich geht das, allerdings würde ich das nicht empfehlen weil du damit vorraussetzt das der Nutzer, der gerade angemeldet ist, dort Schreibrechte hat (hat aber eigentlich nur ein Admin)
Delphi-Quellcode:
uses shlobj
[...]
function GetAutorunPath: String;
var LPidl: PItemIDList;
    LPath: Array[0..MAX_PATH] of Char;
begin
  if SUCCEEDED(SHGetSpecialFolderLocation(0, CSIDL_COMMON_STARTUP, LPidl)) then
  begin
    SHGetPathFromIDList(LPidl, @LPath);
    result := String(LPath);
  end else
    result := '';
end;
letztendlich ist der unterschied also nur das jetzt CSIDL_COMMON_STARTUP anstelle von CSIDL_STARTUP dasteht


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:01 Uhr.
Seite 1 von 2  1 2      

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