Datei in das autostart Verzeichness kopieren aber wie?



  • Was ist an CopyFile() so schwer zu verstehen? Der schluckt drei Parameter:

    1. Name der Originaldatei ("test.exe")
    2. Name der Zieldatei ("[Autosstart]\test.exe")
    3. Sonderflag (kannst du FALSE angeben - dann wird die Zieldatei notfalls überschrieben)

    Du benötigst dazu noch eine portable Möglichkeit, den Autostart-Ordner zu finden:

    char target[MAX_PATH];
    SHGetSpecialFolderPath(NULL/*bin ich nicht ganz sicher*/,target,CSIDL_STARTUP,FALSE);
    strcat(target,"test.exe");
    CopyFile("test.exe",target,FALSE);
    


  • Mein compiler DEV c++ kennt die funktion SHGetSpecialFolderPath nicht welche include datei bruach ich dafür ? im moment habe ich folgende include datein drin

    #include <windows.h>
    #include <conio.h>
    #include <stdio.h>
    #include <iostream.h>
    


  • Afaik <shellapi.h>, aber schmeiß deinen Compiler gleich mal von der Platte und hol dir VC 2005 Express Edition + Platform SDK (siehe http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html)

    MfG SideWinder



  • Okay ich lad mir denn ma runter, nur dauert ja was^^ Is dev denn so schlecht? ich hatte bis jetzt eigentlich nie was zu meckern... nur auch mit der include datei <shellapi.h> klappts leider net ich bekomme immer noch den fehler hir :
    105 C:\Dokumente und Einstellungen\Christian\Desktop\Klick Party\main.cpp SHGetSpecialFolderPath' undeclared (first use this function) und 105 C:\\Dokumente und Einstellungen\\Christian\\Desktop\\Klick Party\\main.cppCSIDL_STARTUP' undeclared (first use this function)

    warum?



  • Includedatei <shlobj.h>
    Bibliothek shell32.lib

    Gruß
    zeigerzeiger



  • Sind beide in <shlobj.h> deklariert.

    greetz, Swordfish



  • hmmm, trotz einbindung der bibliothek erscheinen folgende fehler:

    error C2664: 'SHGetSpecialFolderPathW': Konvertierung des Parameters 2 von 'char [260]' in 'LPWSTR' nicht möglich
    Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.

    error C2664: 'CopyFileW': Konvertierung des Parameters 1 von 'const char [13]' in 'LPCWSTR' nicht möglich
    Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.



  • Entscheide dich für oder gegen unicode.

    greetz, Swordfish



  • ^^ und wie ?



  • Entweder du rufst SHGetSpecialFolderPathW mit einem wchar_t auf oder SHGetSpecialFolderPath mit einem char

    Gruß
    Tobi

    by the way
    google liefert bei SHGetSpecialFolderPath den entprechenden Eintrag in der MSDN



  • error C2664: 'strcat': Konvertierung des Parameters 1 von 'wchar_t [260]' in 'char *' nicht möglich

    error C2664: 'CopyFileW': Konvertierung des Parameters 1 von 'const char [13]' in 'LPCWSTR' nicht möglich
    Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.



  • wchar_t target[MAX_PATH];
    SHGetSpecialFolderPathW(NULL,target,CSIDL_STARTUP,FALSE);
    strcat(target,"Beispiel.exe");
    CopyFile("Beispiel.exe",target,FALSE);



  • Vielleicht solltest du dir über den Unterschied zwischen den ANSI und UNICODE Varianten nochmal genauer anschauen...

    Gruß
    Tobi

    PS.
    Google ist auch hier dein Freund



  • εεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεε


Anmelden zum Antworten