IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Modifier les droits pour supprimer un fichier


Sujet :

C++Builder

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 169
    Points : 84
    Points
    84
    Par défaut Modifier les droits pour supprimer un fichier
    Salut a tous
    J'ai un fichier.
    Comment je peux modifier leurs attribues tel que je ne peux pas le supprimer ou le renomer .
    J'ai essayer avec la fonction "FileSetAttr" mais rien.
    Merci a tous.

  2. #2
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Salut,
    si tu veux supprimer un fichier, tu peux utiliser la fonction DeleteFile.
    Si cela ne marche pas, essaye de savoir pourquoi en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShowMessage("Erreur "+IntToStr(GetLastError));
    Ensuite, tu vas sur le site de msdn, tu as la liste des erreurs ici.

  3. #3
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Salut,
    Il est vraisemblabe que le fichier que tu essayes de deleter soit ouvert par une autre application. Si dans l'explorateur windows tu n'arrive pas à le renomer ca signifie que c'est le cas. Tu peux egalement verifier ces attribues en regardant ses propriete (click droit + proprieté) avant d'essayer de le modifier pour rien peut-etre.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 169
    Points : 84
    Points
    84
    Par défaut
    J'essaye d'inverser le problème.
    J'ai un exécutable App1 je l'ai copier et je l'ai nommer App2.
    Comment faire pour Supprimer App1 et le remplace dans la table des processus avec App2 , sans fermer App1 et sans lacer App2.
    Alors là impossible de supprimer App2.


    Je te donne un exemple:
    Si tu connais ResHacker.
    http://www.angusj.com/resourcehacker/reshack.zip
    C'est pour parcourir les ressources d'un (EXE dll ... ... ... ...).
    Tu peux avec ResHacker modifier ces resources.
    Si le App.xxx est modifier et tu veux le sauvegarder et si le App.xxx est en cour d'utilisation il sauvegarde l'ancien fichier sous App_original.xxx et le nouveau sous App.xxx
    Alors tu ne peux pas supprimer App_original.xxx par contre tu peux supprimer App.xxx

  5. #5
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Salut,

    J'essaye de comprendre ton souci, mais je ne suis pas sure d'avoir bien saisi.
    Si je resume, tu veux metre à jour une application qui est en train de tourner.
    Ou si App1 tourne, tu veux la modifier en passant par une copie App2 et remplacer App1 par l'appli modifier App2.

    Si c'est ca. J'ai une deja ecrit application capable de se mettre à jour toute seule. Le principe etant:
    - J'execute App1 normalement
    - J'en fait une copie nomé App1 mais situé ailleur.
    - Je modifie cette copie
    - Je la lance et elle remplace App1 dans le gestionnaire de tache et se recopie dans son repertoire d'origine

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 169
    Points : 84
    Points
    84
    Par défaut
    Oui c'est ça l'aidé juste que ResHacker fais ça avec (exe dll ocx ...).

  7. #7
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Je suis désolé, mais j'ai pas bien saisi ta phrase!

  8. #8
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Voici un bout de code qui fait un peu ce que tu veux. Je suppose que cette manipulation à pour but de te donner les droits sur une application qui tourne.

    Que cherches-tu à faire exactement?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
                AnsiString TempPath;
                AnsiString NewPath;
                AnsiString OriginalPath;
     
    //move running application
              GetTempPath(200,TempPath.c_str());
              GetTempFileName(TempPath.c_str(), _T("TMP"),0,NewPath.c_str());
              OriginalPath = Application->ExeName;
     
              if(MoveFileEx(OriginalPath.c_str(),NewPath.c_str(),MOVEFILE_REPLACE_EXISTING) == FALSE)
                  ShowMessage("Moving file error");
              if(CopyFile(NewPath.c_str(),OriginalPath.c_str(),FALSE) == FALSE)
                  ShowMessage("Copying file error");
              if(MoveFileEx(NewPath.c_str(),NULL,MOVEFILE_DELAY_UNTIL_REBOOT) == FALSE)
                  ShowMessage("Moving file error");
    En fait, une application qui tourne ne peux PAS être modifiée et donc tu n'aura jamais les droits. La feinte est en fait d'en faire une copie portant le même nom au même endroit que l'exécutable, en ayant au préalable déplacé l'exe qui tourne dans le fichier de répertoire temporaire en lui disant de se supprimer au prochain redémarrage de l'ordinateur.

  9. #9
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour
    e te donne un exemple:
    Si tu connais ResHacker.
    http://www.angusj.com/resourcehacker/reshack.zip
    C'est pour parcourir les ressources d'un (EXE dll ... ... ... ...).
    Tu peux avec ResHacker modifier ces resources.
    Si le App.xxx est modifier et tu veux le sauvegarder et si le App.xxx est en cour d'utilisation il sauvegarde l'ancien fichier sous App_original.xxx et le nouveau sous App.xxx
    Alors tu ne peux pas supprimer App_original.xxx par contre tu peux supprimer App.xxx
    Reshhcker ne fonctionne pas avec un processous tournant sous ton système
    il ne fait qu'ouvrir l'exécutable(exe,dll,ocx) et d'en extraire les resources,
    de les modifier, de les copier sous forme de resource et également de mettre a jour l'exécutable qui a été modiofié il genère également un fichier Backup

    cordialement

Discussions similaires

  1. Modifier les droits (chmod) sur un fichier
    Par samus35 dans le forum Android
    Réponses: 6
    Dernier message: 20/06/2013, 15h25
  2. Peut-on modifier les droits d'accès des fichiers assets ?
    Par chinoismasque dans le forum Android
    Réponses: 13
    Dernier message: 27/05/2011, 10h59
  3. modifier les droits utilisateurs d'un fichier
    Par neho88 dans le forum Langage
    Réponses: 3
    Dernier message: 14/05/2010, 17h40
  4. pas les droits pour ouvrir un fichier
    Par enzostar dans le forum Langage
    Réponses: 3
    Dernier message: 19/11/2009, 16h46
  5. Réponses: 3
    Dernier message: 07/06/2006, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo