Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD15] fRepertoireExiste ne fonctionne pas dans un service

13 réponses
Avatar
juanito33
Bonjour,

J'ai fait un service avec Windev15 dans lequel je scrute des
répertoires pour faire des traitements sur les fichiers présents. J'ai
un programme Windev 15 qui permet de paramétrer les informations
nécessaires à ce service.

Dans le programme je demande de sélectionner les répertoires concernés
et je vérifie s'ils existent lors de la mémorisation dans un fichier
ini. J'utilise donc fRepertoireExiste() dans mon programme. Avec un
chemin du style \\MonServeur\MonRepertoire, le programme de paramétrage
l'accepte.

Dans le service, je fais les mêmes vérifications dans le code
d'exécution du service. Cependant le fRepertoireExiste() me renvoie
alors faux.
Avec une lettre réseau qui pointe sur le répertoire partagé c'est
pareil.
Qu'est-ce qui pourrait faire que cette fonction ne réagisse pas de la
même manière dans le service que dans le programme ?
J'ai fait un test avec 2 machines sous XP pro sp3. J'ai essayé de
modifier les comptes utilisés par le service mais cela ne change rien.

J'ai essayé de ne pas tester l'existence du répertoire dans le service
mais le fListeFichier() qui suit ne fonctionne pas non plus. Il ne
trouve pas de fichiers dans le répertoire alors qu'il y en a.

Est-ce un bug de Windev 15 ou moi qui m'y prend mal ?

Merci d'avance

Jean

3 réponses

1 2
Avatar
patrice
juanito33 a écrit :
patrice a couché sur son écran :
juanito33 a écrit :
patrice avait énoncé :
juanito33 a écrit :
Bonjour,

J'ai fait un service avec Windev15 dans lequel je scrute des
répertoires pour faire des traitements sur les fichiers présents.
J'ai un programme Windev 15 qui permet de paramétrer les
informations nécessaires à ce service.




comme évoqué dans une précédente réponse, quand on fait un service
on doit choisir :
- si on veut une interface écran (compte local system obligatoire)
- si on veut une interface réseau (compte utilisateur obligatoire)
(et bien sur, dans ce cas, un utilisateur qui a les droits sur le
réseau)



Bonjour,

Pour l'instant, sur mon petit réseau Workgroup XP Pro j'arrive à le
faire fonctionner en mettant le compte "administrateur" avec son mot
de passe. Mon compte local ne permet pas au service d'accéder au
répertoire partagé.
Chez mon client, qui a un mélange de Windows serveur 2003 (où est le
répertoire partagé) et de server 2008 (où est mon service) je
n'arrive pas à le faire fonctionner à partir du compte
"administrateur" du serveur 2008. Pourtant ce compte "administrateur"
permet bien de visualiser le répertoire partagé dans l'explorateur
Windows. Il faudrait que je créé un autre compte sur le serveur 2008
pour accéder au répertoire partagé ?
L'administrateur réseau a pourtant donné tous les droits sur le
répertoire partagé du serveur 2003.
Par contre, ces 2 serveurs sont dans 2 domaines différents, cela joue
peut-être aussi ?

Jean




c'est sur que deux domaines ca va pas arranger la sauce ...
est ce que le compte administrateur à le meme mot de passe sur les
deux machines (service et dossier partagé) ?
essayez peut etre de créer le meme user des 2 cotés ...



Bonjour,

Les 2 comptes administrateurs n'ont pas le même mot de passe sur les 2
serveurs. L'administrateur du réseau n'est pas chaud pour le faire pour
des raisons de sécurité...

La question est donc maintenant : peut-on avoir un compte dans les
propriétés du service qui permet de le lancer et, par programmation
avoir un autre compte qui permettrait de visualiser et accéder au
répertoire partagé de l'autre serveur ?
Je ne vois pas de fonction pour changer de compte utilisateur avant de
faire le fRepertoireExiste()

Jean




La solution de facilité est d'avoir le meme compte pour le service et le
réseau.
Pour utiliser un autre compte, il faut alors utiliser les fonctions de
connection à une resource réseau qui permettent de spécifier un
utilisateur et mot de passe.
(équivalent du net use x: srvresource)

mais attention :
- nécessité de stocker le mot de passe du fameux compte
- il me semble que la lettre de lecteur devient disponible pour toute la
machine

apres y a t'il un besoin de lecture/écriture sur les fichiers ? (pour
remplacer l'accès réseau par un acces ftp ou http ...)
Avatar
phig
Le 23/08/2010 20:42, patrice a écrit :
juanito33 a écrit :
patrice a couché sur son écran :
juanito33 a écrit :
patrice avait énoncé :
juanito33 a écrit :
Bonjour,

J'ai fait un service avec Windev15 dans lequel je scrute des
répertoires pour faire des traitements sur les fichiers présents.
J'ai un programme Windev 15 qui permet de paramétrer les
informations nécessaires à ce service.




comme évoqué dans une précédente réponse, quand on fait un service
on doit choisir :
- si on veut une interface écran (compte local system obligatoire)
- si on veut une interface réseau (compte utilisateur obligatoire)
(et bien sur, dans ce cas, un utilisateur qui a les droits sur le
réseau)



Bonjour,

Pour l'instant, sur mon petit réseau Workgroup XP Pro j'arrive à le
faire fonctionner en mettant le compte "administrateur" avec son mot
de passe. Mon compte local ne permet pas au service d'accéder au
répertoire partagé.
Chez mon client, qui a un mélange de Windows serveur 2003 (où est le
répertoire partagé) et de server 2008 (où est mon service) je
n'arrive pas à le faire fonctionner à partir du compte
"administrateur" du serveur 2008. Pourtant ce compte
"administrateur" permet bien de visualiser le répertoire partagé
dans l'explorateur Windows. Il faudrait que je créé un autre compte
sur le serveur 2008 pour accéder au répertoire partagé ?
L'administrateur réseau a pourtant donné tous les droits sur le
répertoire partagé du serveur 2003.
Par contre, ces 2 serveurs sont dans 2 domaines différents, cela
joue peut-être aussi ?

Jean




c'est sur que deux domaines ca va pas arranger la sauce ...
est ce que le compte administrateur à le meme mot de passe sur les
deux machines (service et dossier partagé) ?
essayez peut etre de créer le meme user des 2 cotés ...



Bonjour,

Les 2 comptes administrateurs n'ont pas le même mot de passe sur les 2
serveurs. L'administrateur du réseau n'est pas chaud pour le faire
pour des raisons de sécurité...

La question est donc maintenant : peut-on avoir un compte dans les
propriétés du service qui permet de le lancer et, par programmation
avoir un autre compte qui permettrait de visualiser et accéder au
répertoire partagé de l'autre serveur ?
Je ne vois pas de fonction pour changer de compte utilisateur avant de
faire le fRepertoireExiste()

Jean




La solution de facilité est d'avoir le meme compte pour le service et le
réseau.
Pour utiliser un autre compte, il faut alors utiliser les fonctions de
connection à une resource réseau qui permettent de spécifier un
utilisateur et mot de passe.
(équivalent du net use x: srvresource)

mais attention :
- nécessité de stocker le mot de passe du fameux compte
- il me semble que la lettre de lecteur devient disponible pour toute la
machine

apres y a t'il un besoin de lecture/écriture sur les fichiers ? (pour
remplacer l'accès réseau par un acces ftp ou http ...)





et si tu mettais pour l'utilisateur du service le nom de l'ordi 2008 ?
( sous la forme srv2008administrateur )
Avatar
juanito33
patrice a exprimé avec précision :
juanito33 a écrit :
patrice a couché sur son écran :
juanito33 a écrit :
patrice avait énoncé :
juanito33 a écrit :
Bonjour,

J'ai fait un service avec Windev15 dans lequel je scrute des
répertoires pour faire des traitements sur les fichiers présents. J'ai
un programme Windev 15 qui permet de paramétrer les informations
nécessaires à ce service.




comme évoqué dans une précédente réponse, quand on fait un service on
doit choisir :
- si on veut une interface écran (compte local system obligatoire)
- si on veut une interface réseau (compte utilisateur obligatoire)
(et bien sur, dans ce cas, un utilisateur qui a les droits sur le
réseau)



Bonjour,

Pour l'instant, sur mon petit réseau Workgroup XP Pro j'arrive à le faire
fonctionner en mettant le compte "administrateur" avec son mot de passe.
Mon compte local ne permet pas au service d'accéder au répertoire
partagé.
Chez mon client, qui a un mélange de Windows serveur 2003 (où est le
répertoire partagé) et de server 2008 (où est mon service) je n'arrive
pas à le faire fonctionner à partir du compte "administrateur" du serveur
2008. Pourtant ce compte "administrateur" permet bien de visualiser le
répertoire partagé dans l'explorateur Windows. Il faudrait que je créé un
autre compte sur le serveur 2008 pour accéder au répertoire partagé ?
L'administrateur réseau a pourtant donné tous les droits sur le
répertoire partagé du serveur 2003.
Par contre, ces 2 serveurs sont dans 2 domaines différents, cela joue
peut-être aussi ?

Jean




c'est sur que deux domaines ca va pas arranger la sauce ...
est ce que le compte administrateur à le meme mot de passe sur les deux
machines (service et dossier partagé) ?
essayez peut etre de créer le meme user des 2 cotés ...



Bonjour,

Les 2 comptes administrateurs n'ont pas le même mot de passe sur les 2
serveurs. L'administrateur du réseau n'est pas chaud pour le faire pour des
raisons de sécurité...

La question est donc maintenant : peut-on avoir un compte dans les
propriétés du service qui permet de le lancer et, par programmation avoir
un autre compte qui permettrait de visualiser et accéder au répertoire
partagé de l'autre serveur ?
Je ne vois pas de fonction pour changer de compte utilisateur avant de
faire le fRepertoireExiste()

Jean




La solution de facilité est d'avoir le meme compte pour le service et le
réseau.
Pour utiliser un autre compte, il faut alors utiliser les fonctions de
connection à une resource réseau qui permettent de spécifier un utilisateur
et mot de passe.
(équivalent du net use x: srvresource)

mais attention :
- nécessité de stocker le mot de passe du fameux compte
- il me semble que la lettre de lecteur devient disponible pour toute la
machine

apres y a t'il un besoin de lecture/écriture sur les fichiers ? (pour
remplacer l'accès réseau par un acces ftp ou http ...)



Bon ça y est enfin. C'était bien un souci d'utilisateur comme tout le
monde l'a dit, en modifiant quand même un peu les accès entre les
domaines.
En tout cas, avec le même code utilisateur et le même mot de passe sur
les 2 serveurs cela fonctionne. Ca a été un peu dur pour l'obtenir mais
au moins cela prouve que cela fonctionne bien comme ça.

Merci à tous pour m'avoir mis sur la piste.

Jean
1 2