AGB  ·  Datenschutz  ·  Impressum  







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

Einfacher Autostart

Ein Thema von Z32 · begonnen am 22. Mär 2007 · letzter Beitrag vom 22. Mär 2007
Antwort Antwort
Z32
(Gast)

n/a Beiträge
 
#1

Einfacher Autostart

  Alt 22. Mär 2007, 14:14
Hallo,

Ich weiß, dass jetzt einige aufstöhnen werden, denn das Thema Autostart wurde schon öfter hier besprochen, aber ich hab da noch eine Frage zu und in den anderen Theman war das immer so schwer beschrieben.

Ich brauche einfach nur einen ganz normalen Autostart, das wenn sich der User Anmeldet mein Programm gestartet wird...

Normalerweise würde ich die EXE jetzt einfach in den Autostart Ordner packen, aber wie kann ich raubekommen, wo der Autostartordner des Users ist? Wie ich die Datei dahinkopiere weiß ich.

Ich habe auch schon gelesen, dass man sein Programm in der Regestry regetrieren kann, aber das würde ich nur ungern machen, außer wenn das geniale Vorteile hätte
  Mit Zitat antworten Zitat
RobertP

Registriert seit: 19. Aug 2006
181 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Einfacher Autostart

  Alt 22. Mär 2007, 14:20
In der Codelib gibts dazu nen Eintrag. *klick*
Robert
  Mit Zitat antworten Zitat
Z32
(Gast)

n/a Beiträge
 
#3

Re: Einfacher Autostart

  Alt 22. Mär 2007, 14:25
äm...das meinte ich mit kompliziert

Gibts den keinen einfacheren Weg ein Programm in den Autostart zu packen?
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#4

Re: Einfacher Autostart

  Alt 22. Mär 2007, 14:28
du kannst es über die registry machen siehe den beitrag *hier*

MfG - Ghost
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Z32
(Gast)

n/a Beiträge
 
#5

Re: Einfacher Autostart

  Alt 22. Mär 2007, 14:40
Zitat von ghost007:
du kannst es über die registry machen siehe den beitrag *hier*

MfG - Ghost

Na das sieht doch wesentlich besser aus...sowas habe ich gesucht, ist zwar jetzt auch regestry, aber egal
  Mit Zitat antworten Zitat
Benutzerbild von stz
stz

Registriert seit: 8. Sep 2005
Ort: Neuendeich, Lübeck
277 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Einfacher Autostart

  Alt 22. Mär 2007, 15:12
Moin Moin,
auch wenn es ein bisschen mehr Code ist, würde ich eine Verknüpfung im Autostart-Ordner anlegen. Ich hab mir den Code dafür gerade zusammengeklaut:

zwei nette Funktionen:
Delphi-Quellcode:
{
CSIDL_COOKIES              Cookies
CSIDL_DESKTOPDIRECTORY    Desktop
CSIDL_FAVORITES            Favoriten
CSIDL_HISTORY              Internet-Verlauf
CSIDL_INTERNET_CACHE      "Temporary Internet Files"
CSIDL_PERSONAL            Eigene Dateien
CSIDL_PROGRAMS            "Programme" im Startmenü
CSIDL_RECENT              "Dokumente" im Startmenü
CSIDL_SENDTO              "Senden an" im Kontextmenü
CSIDL_STARTMENU            Startmenü
CSIDL_STARTUP              Autostart
...immer des aktuellen Benutzers. Durch Einfügen von _COMMON wirds der entsprechende
Ordner aller Benutzer. Beispiel:
CSIDL_COMMON_STARTUP      Autostart aller Benutzer
}


function GetSpecialFolder(hWindow: HWND; Folder: Integer): String;
var
  pMalloc: IMalloc;
  pidl: PItemIDList;
  Path: PChar;
begin
  // get IMalloc interface pointer
  if (SHGetMalloc(pMalloc) <> S_OK) then
  begin
    MessageBox(hWindow, 'Couldn''t get pointer to IMalloc interface.',
               'SHGetMalloc(pMalloc)', 16);
    Exit;
  end;

  // retrieve path
  SHGetSpecialFolderLocation(hWindow, Folder, pidl);
  GetMem(Path, MAX_PATH);
  SHGetPathFromIDList(pidl, Path);
  Result := Path;
  FreeMem(Path);

  // free memory allocated by SHGetSpecialFolderLocation
  pMalloc.Free(pidl);
end;

function GetAutostartFolder: String;
begin
  Result := IncludeTrailingPathDelimiter(GetSpecialFolder(MainForm.Handle, CSIDL_COMMON_STARTUP));
end;

function CreateLink(const AFilename, ALNKFilename, ADescription: String) : Boolean;
var
  psl : IShellLink;
  ppf : IPersistFile;
  wsz : PWideChar;
begin
  Result := False;
  if SUCCEEDED(CoCreateInstance(CLSID_ShellLink, nil,
        CLSCTX_inPROC_SERVER, IID_IShellLinkA, psl)) then
  begin
    psl.SetPath(PChar(AFilename));
    psl.SetDescription(PChar(ADescription));
    psl.SetWorkingDirectory(PChar(ExtractFilePath(AFilename)));
    if SUCCEEDED(psl.QueryInterface(IPersistFile, ppf)) then
    begin
      GetMem(wsz, MAX_PATH * 2);
      try
        MultiByteToWideChar(CP_ACP, 0, PChar(ALNKFilename), -1, wsz, MAX_PATH);
        ppf.Save(wsz, True);
        Result := True;
      finally
        FreeMem(wsz);
      end;
    end;
  end;
end;
und der Aufruf:
Delphi-Quellcode:
if not CreateLink(ParamStr(0), GetAutostartFolder + 'Name der Verknüpfung' + '.lnk', 'Beschreibung der Verknüpfung') then
  MessageDlg('Fehler beim Erzeugen der Verknüpfung!', mtError, [mbOk], 0);
Gruß
Malte
Malte Schmitz
Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.

Entwickler des HTML-Editors MEdit (DP)
  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 17:28 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