AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Autostart

Ein Thema von DelphiUser123 · begonnen am 9. Okt 2015 · letzter Beitrag vom 9. Okt 2015
Antwort Antwort
DelphiUser123

Registriert seit: 23. Feb 2013
23 Beiträge
 
#1

Autostart

  Alt 9. Okt 2015, 11:42
Liebe Delphi Freunde,

ich möchte eine Verknüpfung meines Programmes in den Autostart Ordner verschieben.
Und zwar automatisch und für beliebige Rechner und nicht manuell.

Dazu benötige ich den Pfad für Autostart (der bei jedem Rechner anders sein kann).
Meine Recherchen ergaben: SHGetKnownFolderPath muss ich benutzen und in Uses Shlobj hinzufügen.
Microsoft sagt:
Code:
HRESULT SHGetKnownFolderPath(
  _In_     REFKNOWNFOLDERID rfid,
  _In_     DWORD           dwFlags,
  _In_opt_ HANDLE          hToken,
  _Out_    PWSTR           *ppszPath
);
Nun schreibe ich in das erste Argument FOLDERID_Startup, jedoch meldet Delphi zu eben diesem: "undeklarierter Bezeichner". Fehlt in Uses noch etwas das ich einbinden muss oder was mache ich falsch?

Vielen Dank für Antworten.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Autostart

  Alt 9. Okt 2015, 11:54
Hallo,

hier findest du die Deklarationen: https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: Autostart

  Alt 9. Okt 2015, 12:17
Unter Delphi 7 komme ich so an den Autostartordner:
Delphi-Quellcode:
uses ShlObj;

...
var
  PIDL : PItemIDList;
  InFolder : array[0..MAX_PATH] of Char;
begin
  SHGetSpecialFolderLocation(0, CSIDL_STARTMENU, PIDL);
  SHGetPathFromIDList(PIDL, InFolder);
  fStartMenu := inFolder;
  SHGetSpecialFolderLocation(0, CSIDL_APPDATA, PIDL);
  SHGetPathFromIDList(PIDL, InFolder);
  fLocalAppData := inFolder;
  SHGetSpecialFolderLocation(0, CSIDL_STARTUP, PIDL);
  SHGetPathFromIDList(PIDL, InFolder);
  fAutoStartMenu := inFolder;
end;

...
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

AW: Autostart

  Alt 9. Okt 2015, 13:07
@nahpets Hat das einen besonderen Grund, warum du über die PItemIDList gehst?

Das ginge doch auch kürzer:

Delphi-Quellcode:
function MySHGetFolderPath(const CLSID: Cardinal): string;
var
  Puffer : array[0..MAX_PATH] of Char;
begin
  SHGetFolderPath(0, // Handle
                  CLSID,
                  0, // hToken
                  0, // dwFlags
                  puffer);
  Result := string(Puffer);
end;
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: Autostart

  Alt 9. Okt 2015, 13:21
@nahpets Hat das einen besonderen Grund, warum du über die PItemIDList gehst?
Nö, eigentlich nicht, das ist mal wieder so ein klassischer Fall von "Vererbung per Copy&Paste"
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#6

AW: Autostart

  Alt 9. Okt 2015, 17:45
Ein kleiner Hinweis

https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Deshalb in neuen Progs

SHGetKnownFolderPath

statt

SHGetFolderPath

verwenden..
  Mit Zitat antworten Zitat
DelphiUser123

Registriert seit: 23. Feb 2013
23 Beiträge
 
#7

AW: Autostart

  Alt 9. Okt 2015, 18:11
HolgerX war auf derselben Webseite wie ich.
Die Funktion von mm1256 funktioniert zwar bei mir, Danke.
Aber ich hätte gerne ein modernes neues Programm, wobei ich wieder am Anfangsproblem wäre.

Geändert von DelphiUser123 ( 9. Okt 2015 um 18:13 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 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