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

Delphi Discussion :

Copie de fichier avec un autre utilisateur


Sujet :

Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 42
    Par défaut [Résolu/Contourné] Copie de fichier avec un autre utilisateur
    Bonjour,

    j'ai besoin d'écrire dans un répertoire dans lequel l'utilisateur en cours n'a pas les droits.

    Pour ce faire, je souhaiterais pouvoir lancer une fonction de copie en spécifiant un autre utilisateur. J'ai pensé à la fonction CreateProcessWithLogonW couplée à CMD et sa fonction copy mais la solution n'est pas des plus élégantes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runas(E_Utilisateur.Text,E_Domaine.Text,E_Mdp.Text,'CMD','"Copy'+E_Source.Text+' '+E_Destination.Text'&&Exit"');
    avec runas, une procédure qui utilise CreateProcessWithLogonW.

    Il y a-t-il une autre solution ?

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 42
    Par défaut
    Pour résumer.

    Je connais une méthode pour "exécuter en tant que..." (CreateProcessWithLogonW)
    Je connais une méthode pour "copier un fichier" (copyfile).

    En revanche, je ne connais pas de méthode pour "copier en tant que".

    Bêtement, j'avais pensé que ca devait exister dans l'API windows. Visiblement, si c'est le cas, c'est loin d'être connu (j'ai écumé les forums français et anglais pendant quelques heures avant de poster).

    Ensuite, j'ai pensé à la solution utilisant "CreateProcessWithLogonW", "CMD" et "copy". Mais c'est pas top, la fenetre de CMD s'affiche le temps de la copie ; c'est vraiment laid.

    J'en viens à une solution encore plus tarabiscotée : créer un éxécutable Delphi qui ... copie un fichier ^^ et appeler ce magnifique programme avec mon application à l'aide du CreateProcessWithLogonW.

    Voila. S'il y a plus simple, je suis toujours preneur

  3. #3
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Ah..et dans la série tu ne sais pas faire 'exécuter en tant que' pour le programme que tu exécutes ? ça simplifierait tout.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 42
    Par défaut
    Si mais ...

    Le programme doit pouvoir se lancer avec l'utilisateur windows connecté.

    Seules certaines actions doivent se faire en tant qu'utilisateur ayant des droits d'écriture sur certains espaces disques.

    Effectivement, ca serait plus simple. Malheureusement, ca n'est pas possible.

  5. #5
    Membre expérimenté
    Profil pro
    DEV
    Inscrit en
    Août 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DEV

    Informations forums :
    Inscription : Août 2006
    Messages : 182
    Par défaut
    Salut,
    je dis ca complétement au hazard mais
    CreateProcesseWithLogon Associé a un mini exe (petit prog que tu developperez ...) qui copie les fichier cela ne marcherai pas?

    je dis ca a tous hazard

    DragonHeart

  6. #6
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    =>dragonHeart . Oui mais relis les posts : il l'a déja envisagé...

  7. #7
    Membre expérimenté
    Profil pro
    DEV
    Inscrit en
    Août 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DEV

    Informations forums :
    Inscription : Août 2006
    Messages : 182
    Par défaut
    Oups ! je n'avais pas bien vue mes excuses !
    ceci dit a par cette solution je ne vois rien d'autre

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 42
    Par défaut
    Bon, j'ai implémenté la solution.
    Ca marche. C'est l'essentiel.
    Merci pour la réflexion collégiale (quoi à 3? si si).

Discussions similaires

  1. [Débutant] Copie de fichiers avec un compte utilisateur différent
    Par olivier.eckmann dans le forum C#
    Réponses: 7
    Dernier message: 04/04/2012, 18h15
  2. Accéder à un fichier avec un autre utilisateur
    Par Fabii dans le forum VB.NET
    Réponses: 5
    Dernier message: 17/05/2011, 12h10
  3. Réponses: 19
    Dernier message: 10/03/2008, 09h11
  4. Copier un fichier sur le réseau avec un autre utilisateur du domaine
    Par Corben dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 30/01/2008, 16h19
  5. Réponses: 3
    Dernier message: 19/10/2005, 15h58

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