tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
541
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    ich habe schon alles versucht womit ich eine .exe kopieren kann aber es geht nett
    ich habe alles probiert was da steht:

    MoveFile
    CopyFile


    das ist mein code:

    char str[MAX_PATH]; //ermittelt pfad von meiner exe
    GetModuleFileNameA(NULL,str,MAX_PATH);

    string getp;

    getp = str;
    getp.erase(2,18); //Löscht so viel das nur noch laufwerkbuchstabe da ist bsp A:

    getp += "\\Crash Insatll.exe"; //fügt zusammen bsp: A:\\Crash Install.exe

    LPCSTR getpl = getp.c_str(); wandelt getp (std::string) in getpl (LPCSTR) um

    cout<<getpl;



    CopyFile(getpl,"C:\\",true); //Kopiert


    alles funktioniert doch die datei ist anschließend nicht an seinem platz sie wurde nicht kopiert

    ich habe ja auch mit cout den pfad ausgegeben er war richtig und hatte im code überall 2x \\
    hab auch schon das programm mit admin rechte ausgeführt wieder nichts

    OS:Windows Vista Home
    MSVC++
    Was mach ich falsch?
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Erwartet CopyFile nicht auch den Dateinamen der neuen Datei, nicht nur den Pfad?
     

  3. #3
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von MSVCplusplus Beitrag anzeigen
    alles funktioniert doch die datei ist anschließend nicht an seinem platz sie wurde nicht kopiert
    Woher willst du das wissen - hast du den Rückgabewert von "CopyFile()" geprüft? Falls der FALSE ist, kannst du mit "GetLastError()" den aufgetretenen Fehler abfragen.

    Ansonsten - wie sheel schon sagte - benötigst du einen vollständigen Pfadnamen (inkl. Datei) für Quelle und Ziel.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  4. #4
    Crash Kid Crash Kid ist offline Mitglied Gold
    Registriert seit
    Jan 2009
    Beiträge
    147
    Man benötigt für CopyFile() den vollständigen Pfad mit Dateiname und Endung, wo die Datei momentan ist UND den kompletten Pfad mit Dateiname und Endung wo sie hin soll. Man kann damit die Datei auch gleich umbenennen.
    Beispiel: CopyFile("C:\\test.exe", "C:\\Neuer Ordner\\umbenannt.exe", FALSE);

    Aber mal ein Blick in die MSDN hätte deine Frage auch beantwortet.
    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

    Wenn du die eigene exe Datei wo anders hin kopieren willst und nicht weißt wo sie momentan liegt, reicht es auch wenn du nur den Dateinamen angibst. Dann sucht die Funktion nach dem Dateinamen im selben Ordner wo die exe grade liegt, die ausgeführt wurde.

    Was mir nur nicht ganz klar ist, warum du den Pfad in LPCSTR umwandelst. Du kannst doch auch gleich den String reinschreiben. Musst halt die string-Funktion ".c_str()" noch dahinter hängen. Aber dann kannst du dir das ganze umwandeln sparen. Genauso dass du erst den Pfad deiner exe-Datei ermittelst und dann alles löschst bis auf den Laufwerksbuchstaben. Um dann wieder den Dateinamen hinzuzufügen. Is mir irgendwie nicht ganz klar...

    grüße
    Geändert von Crash Kid (19.01.11 um 20:43 Uhr)
     
    Wenn meine Antwort nützlich bzw. hilfreich war, würde ich mich sehr über eine Bewertung bzw. ein Danke sehr freuen.

    Danke euch


    Programmiere in C, C++ auf Windows XP, Vista und Windows 7
    Spezialisiert auf Netzwerkprogrammierung, WinAPI uvm.

Ähnliche Themen

  1. in ein DB kopieren
    Von beso im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 08.03.06, 13:33
  2. DVD kopieren
    Von Philipp_Frank im Forum Kino & Filme
    Antworten: 3
    Letzter Beitrag: 02.01.06, 00:40
  3. Aus PDF kopieren!
    Von foxx21 im Forum Office-Anwendungen
    Antworten: 3
    Letzter Beitrag: 08.12.05, 11:01
  4. Kopieren mit C++
    Von Squeery im Forum Linux & Unix
    Antworten: 4
    Letzter Beitrag: 30.06.05, 09:36
  5. CD-mp3-Kopieren
    Von gix im Forum Hardware
    Antworten: 2
    Letzter Beitrag: 03.08.02, 16:49

Stichworte