CopyFile() - Klappt unter Windows Vista nicht?



  • WinVista schrieb:

    Auch wenn ich das Programm als Administrator starte erhalte ich immer noch 0.

    aber ehrlich, ich weiß auch nich weiter 😞
    sry



  • Hm am besten Vista in der Systemsteuerung uninstallieren, dann hast du wieder Windows XP! weiss aber nicht ob das auch geht, wenn man die vollversion und nicht das update benutzt hat



  • lol, am besten unter Vista UAC deaktivieren, das is natürlich noch ne Möglichkeit, die man probieren müsste :p
    damit umgeht man die ganzen Berechtigungsüberprüfungen.

    also gehst auf Systemsteuerung
    -> Benutzerkonten
    dann gibts da iwo "Benutzerkontensteuerung" oder so ähnlich, hab grad kein Vista laufen.

    auf jeden Fall ist da ein Haken drin, den machst du raus.
    anch einem System Reboot hast du dann ein Vista mit dem Sicherheitsstand von XP 😉

    einfach mal probieren

    PS:
    hier gibts auch ne Erklärung zum ausschalten der UAC:
    http://www.administrator.de/Windows_Vista_-_UAC_deaktivieren.html

    ansonsten einfach gogolen, da kommen genug seiten 😉



  • ist vieleicht dein programm, was die test.exe kopieren soll, die test.exe!?



  • @rT!f@Ct schrieb:

    ist vieleicht dein programm, was die test.exe kopieren soll, die test.exe!?

    nein die test.exe kopiert die test.exe selbst, das problem tritt auch auf wenn ich die datei test2.exe nenne



  • LOL...
    ich schmeiß mich weg vor lachen...

    WinVista schrieb:

    nein die test.exe kopiert die test.exe selbst

    was bitte hab ich denn geschrieben.

    @rT!f@Ct schrieb:

    ist vieleicht dein programm, was die test.exe kopieren soll, die test.exe!?

    dein programm kann sich nicht selbst kopieren, da den zugriff den du zum kopieren brauchst dein eigenes programm verhindet!!!



  • wie kann ich den zugriff für das programm bekommen? ich habe mit fopen die datei angelegt aber ich kann sie nicht ausführen. wenn ich das programm test2.exe nenne geht es auch nicht



  • HAAALLLLOOOOO...................
    lies dir mal bitte in der MSDN durch, was zu fopen geschrieben steht.

    nur so viel schonmal vorweg. fopen erstellt dateien mit endungen wie du sie übergibst. (*.ico, *.bmp, *.dll, *.exe) das heist aber noch lange nicht, das die gerade erstellte datei auch das repräsentiert, was die dateiendung verspricht.

    und du kannst meines wissens nach keinen zugriff auf dein programm bekommen, wenn es sich selbst kopieren soll.



  • Die letzten 2 Beiträge habe ich nicht geschrieben.
    -.-

    ist vieleicht dein programm, was die test.exe kopieren soll, die test.exe!?

    Ja

    und du kannst meines wissens nach keinen zugriff auf dein programm bekommen, wenn es sich selbst kopieren soll.

    Unter Windows XP kann ich sich ganz einfach mein Programm kopieren.



  • dann registrier dich einfach, dann kann keiner mit deinem Namen unfug treiben...



  • DrakoXP schrieb:

    dann registrier dich einfach, dann kann keiner mit deinem Namen unfug treiben...

    ach ist jetzt auch egal, hab auf dem Rechner wieder Win98 installiert, damit klappt es.



  • WinVista schrieb:

    DrakoXP schrieb:

    dann registrier dich einfach, dann kann keiner mit deinem Namen unfug treiben...

    ach ist jetzt auch egal, hab auf dem Rechner wieder Win98 installiert, damit klappt es.

    Habe ich nicht geschrieben.
    Gibts es nicht irgendeine Methode die eigene Datei zu kopieren unter Vista?



  • wenns mit fopen geht, warum nimmst du es dann net einfach?

    #include <stdio.h>
    #include <stdlib.h>
    
    void copy_file(const char* input, const char* output)
    {
    // Öffnen
    FILE* pIn = fopen(input, "r");
    
    // Größe ermitteln
    fseek(pIn, 0, SEEK_END);
    int size = ftell(pIn);
    fseek(pIn, 0, SEEK_SET);
    
    // Puffer erstellen
    char *buffer = malloc(size * sizeof(char));
    
    // Daten lesen
    fread(buffer, 1, size, pIn);
    
    // Datei schließen
    fclose(pIn);
    
    // Ausgabe-Datei erstellen
    FILE* pOut = fopen(output, "w");
    
    // Daten schreiben
    fwrite(buffer, 1, size, pOut);
    
    // Puffer freigeben
    free(buffer);
    
    // Datei schließen
    fclose(pOut);
    }
    

    mit C++-Filestreams würde das ähnlich laufen...


Anmelden zum Antworten