![]() |
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! |
Re: Verknüpfung in Autostart anlegen
Hallöchen,
also hier wird das ganz Gut erklärt: ![]() Das funktioniert ohne großen Aufwand und ohne externe Units oder Klassen. gruß Evan |
Re: Verknüpfung in Autostart anlegen
Hi,
Zitat:
![]() MfG Marc |
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.
|
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 |
Re: Verknüpfung in Autostart anlegen
Genau darum geht es!
Ich möchte wissen, wie ich das machen kann! |
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:
wie man eine Verknüpfung erstellt lässt sich sicher auch noch herausfinden
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; @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: ![]() |
Re: Verknüpfung in Autostart anlegen
Ich hätte ja auch CSIDL_STARTUP verwendet. :stupid:
|
Re: Verknüpfung in Autostart anlegen
Danke!
Werd ich gleich ausprobieren! Edit: Kann man auch den allgemeinen Autostartordner, also für alle Benutzer finden? |
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:
letztendlich ist der unterschied also nur das jetzt CSIDL_COMMON_STARTUP anstelle von CSIDL_STARTUP dasteht
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:01 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