Autostart geht nicht



  • Hi ich würde gern ein Prog automatisch mit Windows starten lassen, hab mir unter anderem auch schon diesen linke hier : http://www.codeproject.com/shell/CShortcut.asp reingezogen, aber das funtzt irgendwie nich.
    Vll. bin ich auch nur zu blöd die Klasse richtig einzbinden, aber aufjedenfall gehts nich bei mir. Ne andere Möglichkeit wäre ja das ganze über die Registry zu machen so wie hier : http://www.c-plusplus.net/forum/viewtopic-var-p-is-283018.html , aber auch das klappt nicht.
    Hat jemand vll. ne einfache Lösung ?



  • Du kannst doch ganz einfach deine Application nach:

    C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Autostart

    kopieren (bzw. nur ein Shortcut davon)

    dann wird sie immer beim Windowsstart ausgeführt.



  • ja schon, aber das will ich das Programm automatisch machen lassen



  • Und wo ist nun Deine Frage?
    Was funktioniert nicht?
    Welchen Fehler bekommst Du?
    Warum glaubst Du das wir eine Kristallkugel haben?

    etc.

    Die Klasse hat einen Header und eine CPP. Die fügst Du in Dein Projekt ein.
    Danach erstellst Du eine Instanz und rufst die Funktion auf.



  • Wenn ich die Funktion "CreateShortCut" aufrufen will, wird mir angezeigt das der Bezeichner "CreateShortCut" nicht definiert ist. Allerdings steht die defnition ja in der .cpp. Und eben das erkennt der Compiler nicht...das ist mein Problem...

    Wenn ichs über die Registry machen will, startet er das Programm nicht beim start obwohl der Eintrag in der Registry steht.

    Meine Frage lautet also : Ob jemand vll. ein ähnliches Problem hat/hatte und/oder es für mein Problem eine einfachere Lösung gibt ?



  • toxor schrieb:

    Wenn ich die Funktion "CreateShortCut" aufrufen will, wird mir angezeigt das der Bezeichner "CreateShortCut" nicht definiert ist. Allerdings steht die defnition ja in der .cpp. Und eben das erkennt der Compiler nicht...das ist mein Problem...

    Wer genau beschwert sich da? Der Compiler (C...) oder der Linker (LNK...)? Und hast du im Header auch den korrekten Prototyp der Funktion angegeben?



  • Es ist der Compiler würde ich jetzt mal sagen, vermutlich hab ich genau das falsch gemacht ( falsch eingebunden ), ich werd mir mal das Demoprojekt reinziehen und meld mich wieder wenn ich alles kaputt gemacht hab 😉



  • Also muss jetzt wieder nerven, weil ichs einfach nicht hinkrieg.
    Ich füge die zwei neuen cpp/h ein, schreib in meine BlaDlg.cpp #include "Shortcut.h" und erstelle den Zeiger m_pShortcut für die neue Klasse.
    Warum erkennt er den Zeiger nicht in der Hauptanwendung ?



  • Zeig doch mal ein wenig Code? Wo hast du den Zeiger angelegt und wo soll er ihn erkennen?



  • Naja is halt ein bischen viel Code, aber ich versuchs jetzt doch wieder über die Registry

    CString strPath;
    	strPath = GetCommandLine();
    	CRegKey key;
    	key.Open( HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", KEY_WRITE);
    	BYTE *pbBuffer = (BYTE *)malloc(300); 
    	strcpy((char*)pbBuffer, strPath);
    	key.SetValue( "Timer", (DWORD)REG_SZ,pbBuffer,300);
    	key.Close();
    

    und trag das Programm so in Autostart ein, aber warum funtzt das nicht ? Der Pfad der .exe steht schon im richtigen Ordner der Registry drin.
    Der Autostartordner ist doch : Software\\Microsoft\\Windows\\CurrentVersion\\Run
    ?



  • Und was hat der Code jetzt mit dem CShortCut-Zeiger zu tun, den du oben gesucht hast?



  • Ja nicht viel, das ist halt die andere Möglichkeit ein Prog in Autostart zu schreiben. Das mit der Klasse hab ich schon aufgegeben, ich kann dir da auch kein Code oder so zeigen, weil ich nicht weiss wo da das Problem ist.


Anmelden zum Antworten