J'ai un petit problème, supposont que les utilisateurs d'un programme X peuvent choisir l'emplacement de l'installation, et que mon programme Y veuille ouvrir l'exe du programme X, comment faire pour retrouver le chemin de l'.exe? (le processus peut-être lancé ou non).
J'ai cherché un peu partout et jai trouvé une solution si le processus est lancé, mais ca ne me convient pas car comment faire quand le processus X n'est pas lancé?
Si ce n'est pas depuis tom programme, et donc que l'application peut être lancée ou non, le seul moyen, c'est de le mettre à un endroit fixe.
Ca peut être une Base de donnée, une clef de registre, ou un fichier.
Même si je n'aime pas toucher au registre, dans ton cas, c'est peut-être la solution la plus propre.
Amicalement, SharpMao
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Salut,
Généralement, dans ce genre de situations, le programme check le répertoire par défaut d'install et s'il ne trouve pas son bonheur, demande à l'utilisateur de spécifier le path où se trouve le fichier nécessaire. C'est à mon sens la manière la plus propre ;-)
C'est vrai, les solutions les plus simples sont souvent les meilleures.
Mais comme je travaille avec des services ces derniers temps, j'ai tendance à oublier qu'on peut demander quelque chose à l'utilisateur.
Amicalement, SharpMao
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Effectivement je n'avais pas pensé à cette solution qui ets la base de registre...
Comment faire pour qu'au lancement de mon form donc dans l'évenement Form1_Load par exemple, mon programme aille lire l'emplacement du programme X dans la base de registre et l'enregistre dans la variable TextBox1 de mon programme?
Vous n’avez pas trouvé la réponse que vous recherchez ?
En principe, j'essaie autant que possible d'éviter de toucher au registre, non pas par peur , mais simplement parce que le .net ne devrait pas en avoir besoin.
C'est pour cette raison que j'ai mis "peut-être la solution la plus propre"
Donc, si ça ne pose pas de problèmes de demander le path à l'utilisateur, fais-le de cette manière.
Si tu veux automatiser au maximum, utilise quand même la base de registre.
Amicalement, SharpMao
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Les accès à la registry sont très simples, tu trouves des exemples partout comme par exemple ici.
En ce qui me concerne, je choisirais la solution de demander à l'utilisateur le path lors du tout premier démarrage du programme (puis tu stockes sa saisie dans un fichier xml par exemple).
Après avoir essayé dans tous les sens je me rend compte que la propriété folderBrowserDialog1.Filter n'éxiste pas... Comment faire pour que l'utilisateur puisser choisir le repertoire ou il est contenu un "programmex.exe" et ne sauvegarder dans le fichier .xml que le répertoire du style ""C:\\Program Files\\Repertoire\" dans une variable?
Tu peux utiliser un OpenFileDialog pour qu'il puisse browser sur son fichier.
Ensuite tu récupères le path sélectionné (path complet ou juste répertoire parent selon le besoin).
Pour l'écritre dans Xml, voire Serialization (XmlSerializer), XmlDocument/XmlWriter
J'ai réussi à créer le code du OpenFileDialog mais je n'arrive pas à récupérer le repertoire parent et le stocker dans un .xml, une proposition? Merci beaucoup!
Merci pour ta réponse SharpMao cela fonctionne, pour en revenir à la variable "parentDirectory" ici, quel est la meilleure méthode pour moi pour stocker ma variable et pouvoir la réutiliser n'importe ou dans le code? Le fichier .xml serait en plus de l'exe? ou serait compiler dans l'exe?
Le problème c'est que j"aimerais n'avoir aucun fichier à coter, le plus juducieux serait de faire avec la méthode textBox1 comme je l'avais cité? existe-t-il un autre moyen?