Datei in das autostart Verzeichness kopieren aber wie?
-
Was ist an CopyFile() so schwer zu verstehen? Der schluckt drei Parameter:
- Name der Originaldatei ("test.exe")
- Name der Zieldatei ("[Autosstart]\test.exe")
- 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.cppSHGetSpecialFolderPath' undeclared (first use this function) und 105 C:\\Dokumente und Einstellungen\\Christian\\Desktop\\Klick Party\\main.cpp
CSIDL_STARTUP' undeclared (first use this function)warum?
-
Includedatei <shlobj.h>
Bibliothek shell32.libGruß
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ß
Tobiby 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ß
TobiPS.
Google ist auch hier dein Freund
-
εεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεεε