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

API, COM et SDKs Delphi Discussion :

Service et copie fichier sur le réseau


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 146
    Par défaut Service et copie fichier sur le réseau
    Bonjour,

    Je développe un service qui génère des fichiers (XML - à partir d'une DB). Je doit transférer ces fichiers sur une machine distante sur le réseau local - emplacement configurable.

    J'ai essayé différentes choses :

    FileCopy, MoveFileEx et un code utilisant SHFileOperation. Rien ne fonctionne, même en créant un lecteur réseau.

    La function DirectoyExists(MonDirDeDestination) me renvoie aussi False alors qu'il est bien accessible dans l'explorateur...

    Une idée, sachant que j'aimerais ne pas avoir à faire appel à un FTP... ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 915
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 915
    Par défaut
    Il faudrait je pense au minimum que le partage soit accessible par "tout le monde" pour que SYSTEM puisse y accéder.
    Sinon, soit Il faudrait démarrer le service avec un autre compte que SYSTEM ou démarrer un autre processus depuis le service par CreateProcessWithLogon. Ce second compte possédant bien sûr des droits en écriture (existe sur la cible).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 146
    Par défaut
    Merci pour ta réponse...

    Il faudrait je pense au minimum que le partage soit accessible par "tout le monde" pour que SYSTEM puisse y accéder.
    Le probleme est que justement, ce répertoire est accessible à tous, et qu'un programe 'normal' (pas un service) parvient à écrire sans problème...

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 044
    Par défaut
    Utilise SC.exe pour configurer ton service avec une session
    Cela peut se faire depuis aussi service.msc
    cela fera automatiquement le CreateProcessWithLogon conseillé par Andnotor

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sc.exe config ServiceName obj=... password=...
    cela peut se faire en Delphi pour l'installation (via un EXE normal)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    begin
      ShellExecute(0, 'open', 'Servicelejert', '/install', nil, SW_NORMAL); //  /silent
      Sleep(1000);
     
      ShellExecute(0, 'open', 'sc.exe', PChar(Format('config "Servicelejert" obj= %s password= %s', [edAccountName.Text, edAccountPW.Text])), PChar(ExtractFileDir(Application.ExeName)), SW_NORMAL);
    end;
    Le comportement du Service change vraiment entre mode SYSTEM et un mode SESSION
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Création d'un fichier sur le réseau
    Par Luffy Duck dans le forum Langage
    Réponses: 23
    Dernier message: 10/01/2008, 16h56
  2. Réponses: 2
    Dernier message: 22/03/2007, 13h25
  3. Copier un fichier sur un réseau
    Par Chess0 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 16/08/2006, 17h56
  4. Réponses: 2
    Dernier message: 19/12/2005, 20h11

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