Programm in Autostart legen??



  • Verknüpfung in CSIDL_COMMON_PROGRAMS bzw. CSIDL_PROGRAMS in dem Unterverzeichnis "autostart" erstellen. Unter non-NT-System fällt die erste Möglichkeit weg.

    EDIT:
    @Rostfrei[]
    1. Dass muss er nicht
    2. Dazu hat der normale Benutzer keine Rechte
    3. Ist das schlechter Stil
    3.1 Kannst du dabei eine Menge Mist bauen
    3.2 Wird jedes Aufräum-Tool den Eintrag sofort wieder entfernen
    3.3 Hat kein Anwender es gerne, dass einfach in seinen Systemstartkonfigurationen manipuliert wird
    4 Ist das die schlechteste aller Autostart-Möglichkeiten



  • Sorry aber könntest du mir vlt. genaueres erklären? sorry bin neu in Borland C++.
    Ich finde die entsprechenden ordner nicht und weiß auch nicht wei ich den pfahd meiner anwendung herbekomme es sei denn wie man ein verknüpfung erstellt.

    ich würde gerne dieses Editor-Tut machen, um besser zu werden, aber ich finde es bei den Tutorials nicht.

    Danke vielmals schonmal



  • Das Startmenü liegt als reales Verzeichnis irgendwo auf der Festplatte (üblicherweise unter "Dokumente und Einstellungen"->Username auf neueren Windows-Systemen), eins seiner Unterverzeichnisse heißt "Autostart" und dort mußt du eine Verknüpfung zu deinem Programm reinlegen.

    PS: Am schnellsten kommst zu zum richtigen Verzeichnis, indem du mit der rechten Taste auf "Start" klickst und "Explorer" auswählst.



  • entweder CSIDL_COMMON_STARTUP (alle Benutzer) oder CSIDL_STARTUP (aktueller Benutzer).

    #include <shlobj.h> // für Shell-Konstanten
    
    char         Buffer[MAX_PATH];
    LPITEMIDLIST ItemID;
    
    // ID und zugehörigen Pfad bestimmen
    SHGetSpecialFolderLocation(0, CSIDL_STARTUP, &ItemID);
    SHGetPathFromIDList(ItemID, Buffer);
    
    // Pfad in AnsiString umwandeln
    AnsiString Pfad = AnsiString(Buffer);
    


  • Also es funktioniert noc nicht die Medlung lautet "Multiple "Foldersettings" oderso.
    Naja gibt es eine saubere möglichkeit die über die Registry zu machen? Also so, dass es kein Registry-Cleanrer löscht?
    mfg Maxmann



  • Selbst wenn es keiner löscht, ist das die mit Abstand schlechteste Methode, die du anwenden kannst! Siehe mein Argumentation oben ...

    @Sunday
    Bleibt aber nach wie vor zu erwähnen, dass CSIDL_COMMON_* erst seit Windows NT zur Verfügung stehen!



  • Maxmann schrieb:

    "Multiple "Foldersettings" oderso.

    sehr hilfreich! 👎

    trage in deinem projekt unter optionen - verzeichnisse/bedingungen - bedingungen mal NO_WIN32_LEAN_AND_MEAN ein.

    @Reyx

    unter Win9x hat CSIDL_STARTUP den selben effekt wie CSIDL_COMMON_STARTUP, wenn ich die MSDN richtig deute:

    MSDN schrieb:

    CSIDL_STARTUP

    File system directory that corresponds to the user's Startup program group. The system starts these programs whenever any user logs onto Windows NT® or starts Windows® 95. A typical path is C:\Documents and Settings\username\Start Menu\Programs\Startup.



  • Aus praktischen Tests weiß ich aber, dass die CSIDL's mit COMMON zumindest unter Win98 Datenmüll produzieren!

    Ob das grundsätzlich bei allen so ist, weiß ich nicht, aber bei allen von mir getesteten (und das waren einige).



  • OK vielen dank dann für eure hilfe.



  • ich hab ja auch das ohne COMMON gemeint, dass das den selben effekt hat!



  • Stimmt aber nicht.
    Mit COMMON (WinNT) - > Alle Benutzer
    Ohne COMMON (WinNT) -> Aktueller Benutzer
    Mit COMMON (Win9x) -> Datenmüll
    Ohne COMMON (Win9x) -> Alle Benutzer/Aktueller Benutzer (gibt da ja nur einen)

    Aber vielleicht reden wir ja aneinander vorbei 😉



  • Reyx schrieb:

    Stimmt aber nicht.
    Mit COMMON (WinNT) - > Alle Benutzer
    Ohne COMMON (WinNT) -> Aktueller Benutzer
    Mit COMMON (Win9x) -> Datenmüll
    Ohne COMMON (Win9x) -> Alle Benutzer/Aktueller Benutzer (gibt da ja nur einen)

    Aber vielleicht reden wir ja aneinander vorbei 😉

    genauso habe ich das ja auch gemeint. 🙂


Anmelden zum Antworten