Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > WinDev
WinDev Forum d'entraide sur la programmation en WinDev
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 03/01/2013, 16h38   #1
michel.souris
Membre actif
 
Homme
Développeur informatique
Inscription : mars 2009
Messages : 151
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2009
Messages : 151
Points : 191
Points : 191
Envoyer un message via MSN à michel.souris
Par défaut Où placer ses fichiers de données ?

Bonjour à tous,

Je travaille actuellement sur le développement d'un produit et je souhaiterais que son exécution ne nécessite pas les droits d'administration.

Lors de l'installation les fichiers de données et autre fichier de config sont déployés sur le <RepDonneesCommun>.

Dans mon code, à l'initialisation je fais un fRepEnCours(fRepDonnéesCommun)
J'ai également fait un HChangeRep("*",RepDonneesCommun())

Donc jusque là tout va bien... par contre ce qui me dérange, et c'est pas uniquement lié à Windev, c'est que cela fonctionne uniquement si l'administrateur n'exécute pas le programme en premier...

En gros le premier utilisateur qui exécute l'application s'attribue les droits sur les fichiers... Je peux le comprendre... c'est lui qui fait le HCréationSiInexistant() et les éventuels fOuvre('toto.txt',foCréationSiInexistant)

Du coup j'aurais tendance à dire : "Ok chacun ses fichiers donc je migre tout dans le <RepDonneesUser> MAIS lors de l'installation l'user est un admin, c'est donc dans SON répertoire que les fichiers sont déployés...

Donc je finis par me dire : "J'installe tout dans <RepDonnéesCommun> et lors de l’exécution je teste l'existence des fichiers dans le répertoire <RepDonnéesUser> et s'il n'existe pas je copie ce dont j'ai besoin depuis le <RepDonnéesCommun>...." mais j'ai l'impression d'alambiquer un problème simple...

Bref la question est la suivante : "Comment faire pour que soit le plus simple possible ?"
__________________
SQL : le véritable Esperanto
PHP/HTML/JS/CSS : et avec ça tu fais fessebouc !
Windev : ***** et **** parce que ***** même si ****** bien

"Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)
michel.souris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 16h54   #2
mail.spam
Modérateur
 
Avatar de mail.spam
 
Homme Sylvain
Développeur Windev et technicien maintenance
Inscription : janvier 2008
Messages : 1 640
Détails du profil
Informations personnelles :
Nom : Homme Sylvain
Âge : 34
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Windev et technicien maintenance
Secteur : Industrie

Informations forums :
Inscription : janvier 2008
Messages : 1 640
Points : 3 817
Points : 3 817
Bonjour,

La première question est quelle version de windev utilise tu?
Pour l'utilisation sous windows 7 et vista il y a une option lors de la génération de l'exécutable qui s'appelle "manifeste windows vista"
Regarde dans l'aide.
Ainsi l'utilisateur prend les droits que tu lui donne par le manifeste.
Je pense que ça peux résoudre ton problème.
__________________
la touche est ton amie. l'aide ne mord pas quand on la consulte...
PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

Pensez à utiliser les votes et à cliquer sur , merci
mail.spam est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/01/2013, 17h04   #3
michel.souris
Membre actif
 
Homme
Développeur informatique
Inscription : mars 2009
Messages : 151
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2009
Messages : 151
Points : 191
Points : 191
Envoyer un message via MSN à michel.souris
Citation:
Envoyé par mail.spam Voir le message
Bonjour,

La première question est quelle version de windev utilise tu?
Pour l'utilisation sous windows 7 et vista il y a une option lors de la génération de l'exécutable qui s'appelle "manifeste windows vista"
Regarde dans l'aide.
Ainsi l'utilisateur prend les droits que tu lui donne par le manifeste.
Je pense que ça peux résoudre ton problème.
C'est une bonne piste ! mais je ne trouve rien dans l'aide concernant les manifestes personnalisés....

[EDIT]
Ah si j'ai trouvé à cette page : http://doc.pcsoft.fr/fr-FR/?2025013
[/EDIT]

[EDIT2]
Bon ben en fait ça m'aide pas beaucoup... et le fichier d'exemple de PCSOFT... ben je préfère rien dire...

J'ai pas précisé mais je bosse sur Windev 18 (depuis hier) mais le pb était déjà le même en WD17....
[/EDIT2]
__________________
SQL : le véritable Esperanto
PHP/HTML/JS/CSS : et avec ça tu fais fessebouc !
Windev : ***** et **** parce que ***** même si ****** bien

"Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)
michel.souris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 17h16   #4
Emmanuel Lecoester
Responsable WinDev
 
Avatar de Emmanuel Lecoester
 
Emmanuel Lecoester
Inscription : février 2003
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Emmanuel Lecoester
Âge : 37
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : février 2003
Messages : 1 467
Points : 3 107
Points : 3 107
Envoyer un message via MSN à Emmanuel Lecoester Envoyer un message via Skype™ à Emmanuel Lecoester
Pourquoi ne pas utiliser une version HF Serveur ?
__________________
Emmanuel Lecoester
=> On recrute des rédacteurs WinDev
Emmanuel Lecoester est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 17h23   #5
michel.souris
Membre actif
 
Homme
Développeur informatique
Inscription : mars 2009
Messages : 151
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2009
Messages : 151
Points : 191
Points : 191
Envoyer un message via MSN à michel.souris
Citation:
Envoyé par Emmanuel Lecoester Voir le message
Pourquoi ne pas utiliser une version HF Serveur ?
Pour plusieurs raisons dont voici les 2 principales :

- j'aimerais comprendre comment faire pour créer un programme installé par un administrateur et utilisé par un utilisateur lambda
- il s'agit d'une version monoposte/mono-utilisateur et cela ne justifie pas (pour moi) la mise en place d'un serveur (HF ou autre)


Enfin, pour information, nous distribuons 2 versions de l'application : une monoposte et une C/S.
__________________
SQL : le véritable Esperanto
PHP/HTML/JS/CSS : et avec ça tu fais fessebouc !
Windev : ***** et **** parce que ***** même si ****** bien

"Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)
michel.souris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 17h48   #6
themayu
Membre confirmé
 
Homme
Développeur informatique
Inscription : mars 2009
Messages : 92
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2009
Messages : 92
Points : 222
Points : 222
Bonjour,

Vous pouvez utiliser SysRep avec le paramètre "srAppDataCommun", plus de problème de compte d'utilisateur.

EDIT:
Voir même "srAppDataLocal", si la définition "Commun" pose tout de même des problèmes avec les comptes.
themayu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 09h25   #7
michel.souris
Membre actif
 
Homme
Développeur informatique
Inscription : mars 2009
Messages : 151
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2009
Messages : 151
Points : 191
Points : 191
Envoyer un message via MSN à michel.souris
Citation:
Envoyé par themayu Voir le message
Bonjour,

Vous pouvez utiliser SysRep avec le paramètre "srAppDataCommun", plus de problème de compte d'utilisateur.

EDIT:
Voir même "srAppDataLocal", si la définition "Commun" pose tout de même des problèmes avec les comptes.
Bonjour,

Merci pour votre réponse.

Cela ne changera rien à mon problème. :
- SysRep(srAppDataCommun) et RepDonneesCommun renvoit la même chose.
- SysRep(srAppDataLocal) est lié à l'utilisateur (données stockées dans un sous-dossier "Local" du répertoire des données utilisateur)

Je pense que je n'avais pas tant alambiquer le problème que ça...je vais donc faire comme je le pensais initialement : un déploiement des données le RepDonnéesCommun (ou SysRep(srAppDataCommun)) lors de l'installation puis une copie des données dans le répertoire RepDonnéesUtilisateur lors de la première exécution... je ne vois rien de plus simple finalement !!!
__________________
SQL : le véritable Esperanto
PHP/HTML/JS/CSS : et avec ça tu fais fessebouc !
Windev : ***** et **** parce que ***** même si ****** bien

"Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)
michel.souris est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/01/2013, 09h51   #8
R&B
Membre confirmé
 
Homme Romuald Besset
Développeur informatique
Inscription : mars 2005
Messages : 142
Détails du profil
Informations personnelles :
Nom : Homme Romuald Besset
Âge : 40
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Distribution

Informations forums :
Inscription : mars 2005
Messages : 142
Points : 234
Points : 234
hmmm

Nous n'utilisons pas forcément les répertoires 'Windows' et pour cause : on dépends de l'utilisateur en cours etc.

une solutions certe ancienne mais qui fonctionne encore :
un répertoire pour votre projet au sens large
un sous répertoire avec les exécutables et autres fichier nécessaires à l'exécution de votre projet
un sous répertoire pour les données

Besoins d'une sauvegarde ? hop ! on prends le répertoire du projet !
Autre avantage : simplification de la recherche des données etc. il suffit d'ouvrir le répertoire du raccourcis sur le bureau et on est dans la place à très peu de chose près !

Idem on C/S, un sous répertoire pour le serveur et un autre pour les données C/S. penser à un sous répertoire pour les autres fichiers partagées qui est le même qu'en mode classic.

Au final 4 sous répertoires avec les deux derniers optionnels : exe, données, serveur CS et données CS.

On peut ensuite dériver plein de possibilité dans votre espace projet...

En résumé : faire simple !
__________________
++ R&B
R&B est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 09h52   #9
themayu
Membre confirmé
 
Homme
Développeur informatique
Inscription : mars 2009
Messages : 92
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2009
Messages : 92
Points : 222
Points : 222
Je n'avais pas testé mais effectivement srAppDataLocal est spécifique à l'utilisateur, du coup la définition dans l'aide ne correspond pas à grand chose ...

Citation:
srAppDataLocal = Répertoire à utiliser par les applications pour stocker leurs données (spécifique à la machine plutôt qu'à un utilisateur)
themayu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 10h06   #10
michel.souris
Membre actif
 
Homme
Développeur informatique
Inscription : mars 2009
Messages : 151
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2009
Messages : 151
Points : 191
Points : 191
Envoyer un message via MSN à michel.souris
Citation:
Envoyé par themayu Voir le message
Je n'avais pas testé mais effectivement srAppDataLocal est spécifique à l'utilisateur, du coup la définition dans l'aide ne correspond pas à grand chose ...
Si c'est valable dans le cas des profils itinérants... je crois....

Lorsque vous travaillez dans sur un domaine vous pouvez vous loguez depuis n'importe quel poste du domaine (si vous y êtes autorisé), dans ce cas les données répliquées d'un poste à un autre sont les données du dossier utilisateur (RepDonneesCommun) SAUF le répertoire "Local"... si je ne dis pas de bêtise !
__________________
SQL : le véritable Esperanto
PHP/HTML/JS/CSS : et avec ça tu fais fessebouc !
Windev : ***** et **** parce que ***** même si ****** bien

"Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)
michel.souris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 13h41   #11
lololebricoleur
Membre confirmé
 
Inscription : juin 2010
Messages : 528
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 528
Points : 213
Points : 213
Par défaut Bonjour,

Pour ma part, après avoir longtemps galérer à essayer de comprendre et de respecter les règles de programmations logiquement imposées par windows, j'ai fini par appliquer ma propre méthode.

Pas de manifeste piur 7 ou vista
Les fichier de données sont installé dans un répertoire caché à la racine du disque qui contient l'application.
Dans le code d'initialisation du projet, je fais un HChangeRep pour localiser l'endroit et voilà.
Depuis, plus de soucis.
lololebricoleur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 10h26   #12
michel.souris
Membre actif
 
Homme
Développeur informatique
Inscription : mars 2009
Messages : 151
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2009
Messages : 151
Points : 191
Points : 191
Envoyer un message via MSN à michel.souris
Bonjour,

Merci pour vos réponses.

Je mets le thread en "résolu"... même si j'avoue que dans mon cas la solution la plus pertinente, enfin il me semble, est celle que je me proposais tout seul au début !

Donc pour une application compatible avec l'organisation des droit Windows :

- Installation du programme par l'administrateur avec déploiement de données sur fRepDonnéesCommun()
- Copie des données dans fRepDonnéesUtilisateur() lors de la première éxécution par chaque utilisateur avec ou sans pouvoir
__________________
SQL : le véritable Esperanto
PHP/HTML/JS/CSS : et avec ça tu fais fessebouc !
Windev : ***** et **** parce que ***** même si ****** bien

"Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)
michel.souris est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h07.


 
 
 
 
Partenaires

Hébergement Web