Autostart + Dialogicon



  • hi,

    1. ich hab ein programm geschrieben, das autostarten soll (beim start von windows) 🙄 . dazu hab ich in
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    

    einen neuen eintrag names Reminder angelegt und den Wert auf "C:\Dokumente und Einstellungen\Lars\Desktop\test_dir\reminder.exe" (mit anführungszeichen) gesetzt. in der registry stehts 100%-ig drin 🙂 , aber windows meckert bei start: "Kann die angegebene Datei nicht finden." 😞 . über start -> ausführen geht es aber.

    1. ich hab ein icon in einem dialog so definiert:
    CONTROL IDI_ICON, -1, "STATIC", SS_ICON | WS_CHILD | WS_VISIBLE, 5, 4, 13, 14
    

    allerdings erscheint immer nur das standar*-programm-icon. und nicht das von mir. achja:

    #define IDI_ICON    100
    

    natürlich.



  • Zu 1) kann ich nur sagen, dass IMO die aufzurufende Datei(Pfad)
    im 8.3-Format vorliegen muss (GetShortPathName()).

    [EDIT]Formatiert[/EDIT]

    [ Dieser Beitrag wurde am 10.11.2002 um 10:26 Uhr von TKool editiert. ]



  • hab ich schon probiert, hat aber nicht geholfen. 😞
    jemand noch 'ne idee?



  • Zu 1) Lass mal die Gänsefüßchen weg.
    Zu 2) Das, was hinter CONTROL steht, sollte die ID des Statics sein - nicht die des Icons, das da hinein soll. Du musst ihm per Code beibringen, welches Icon du angezeigt haben willst. Stichwort: STM_SETIMAGE.



  • hi,

    ok, das icon ist erstmal nicht so wichtig. aber der autostart! ich hab im forum gesucht und es scheint noch nichts zum thema autostart zu geben. wie macht man das? gibt es andere möglichkeiten? was mus ich beachten? oder ein link? hiilfe!
    (nein ich bin nicht betrunken)

    lw



  • Ich weiß jetzt nicht, wo ran es liegt, aber ich würde nicht HKLM nehmen, sondern HKCU. Denn nicht jeder der dein Programm nutzt, muß Adminrechte auf dem Rechner haben und nur mit Adminrechten kannst du in den HKLM-Schlüssel schreiben.



  • hi,
    danke. trotzdem gleicher fehler. 😞

    lw



  • steht das in der reg wirklich so drin:

    "C:\Dokume~1\Lars\Desktop\test_dir\reminder.exe"
    

    und schau mal bei
    Start->Programme->Zubehör->Systemprogramme->Systeminformationen
    ->Extras->Systemkonfigurationsprogramm->Autostart
    nach, ob da der eintrag drin ist
    (oder gibts das programm unter win2K/XP nicht?)



  • hi,
    doch, so ähnlich geht das auch unter win2000. es steht mit kurzem pfad so drin. ohne anführungszeichen. trotzdem gleicher fehler.

    ich würde das gern anders machen. ich möchte gern eine verknüpfung in den ordner autostart im startmenü unter programme erstellen. das geht nämlich, im gegensatz zur registry-variante. (habs "manuell" probiert) dazu brauch ich ja (wie ich herausgefunden habe) SHGetFolderPath bzw. SHGetSpecialFolderPath (oder?). kann dazu jemand mal ein bsp. posten? (also wie man den pfad für CSIDL_STARTUP den Pfad bekommt). es wäre nicht schlecht wenn es in allen windows-versionen laufen würde. die verknüpfung hoffe ich dann mal selber hinzubekommen. (steht ja in den WinAPI-FAQ)

    lw

    [ Dieser Beitrag wurde am 16.11.2002 um 18:18 Uhr von Lawilog editiert. ]



  • Sooo schwer ist das doch nicht:

    CHAR startup_path[MAX_PATH];
    LPITEMIDLIST lpidl;
    SHGetSpecialFolderLocation(Handle, CSIDL_STARTUP, &lpidl);
    SHGetPathFromIDList(lpidl, startup_path);
    MessageBox(Handle, startup_path, "Autostart-Ordner:", MB_OK);
    

    Aber ich gebe zu, dass man schon ein wenig Erfahrung haben muss, um SHGetPathFromIDList() zu finden, bzw. zu wissen, dass es so eine Funktion überhaupt gibt.


Anmelden zum Antworten