KyneasSurYoutube
Messages postés7Date d'inscriptionmercredi 4 juillet 2018StatutMembreDernière intervention 6 juillet 2018
-
4 juil. 2018 à 10:56
Whismeril
Messages postés18417Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 5 juin 2023
-
6 juil. 2018 à 10:54
Bonjour à tous,
Je développement une application, je voudrais créer un fichier (dossier) dans le 'C:\Program Files (x86)\. Mais quand je démarre mon application bah j'ai mon jolie code d'erreur :
Une exception non gérée du type 'System.UnauthorizedAccessException' s'est produite dans mscorlib.dll
Informations supplémentaires : L'accès au chemin d'accès 'C:\Program Files (x86)\' est refusé.
Voici mon code source :
Private Sub StartInstall_Click(sender As Object, e As EventArgs) Handles StartInstall.Click
SetAttr("C:\Program Files (x86)\", vbNormal)
My.Computer.FileSystem.CreateDirectory("C:\Program Files (x86)\***LOGICIELNAME***")
End Sub
KyneasSurYoutube
Messages postés7Date d'inscriptionmercredi 4 juillet 2018StatutMembreDernière intervention 6 juillet 2018 Modifié le 4 juil. 2018 à 18:09
Bonjour,
Merci de votre réponse mais le problème c'est que je ne sais pas comment utiliser cette environnement...
Whismeril
Messages postés18417Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 5 juin 2023624 4 juil. 2018 à 18:16
As tu lu l'aide en ligne que je t'ai mis en lien?
Qu'as tu essayé avec?
KyneasSurYoutube
Messages postés7Date d'inscriptionmercredi 4 juillet 2018StatutMembreDernière intervention 6 juillet 2018
>
Whismeril
Messages postés18417Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 5 juin 2023 4 juil. 2018 à 20:33
Bah je ne sais pas utiliser la fonction :/ Pourrais-tu m'expliquer s'il te plait ^^'
Whismeril
Messages postés18417Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 5 juin 2023624 5 juil. 2018 à 07:35
Bonjour,
je t'ai posé 2 questions simples, aux quelles j'attends que tu répondes avant de t'expliquer quoique ce soit.
Ta réponse qui n'en est pas une, peut s'interpréter de mile façons différentes dont par exemple ces 2 là
"Oui j'ai lu l'aide en ligne, mais à la ligne XXX, je n'ai pas compris. J'ai testé l'exemple, il m'affiche bien YYY, mais je n'ai pas su l'adapter à mon cas"
"Je n'ai rien lu, je n'ai rien testé, j'attends que tu me donnes tout de suite le code qui marche sans que j'ai un effort à fournir"
Tu comprendras que selon comment je choisis d'interpréter que tu me dises 2 fois "Je sais pas faire", j'ai envie de continuer à t'aider ou pas du tout.
Merci donc de répondre à mes 2 questions, et je t'expliquerai en me basant sur tes réponses.
KyneasSurYoutube
Messages postés7Date d'inscriptionmercredi 4 juillet 2018StatutMembreDernière intervention 6 juillet 2018 5 juil. 2018 à 11:44
Bonjour,
En faite, tu ne comprend pas ma réponse hein... Pfff
Je ne sais pas UTILISER CETTE FONCTION !
J'ai lu l'article mais j'arrive PAS !
Whismeril
Messages postés18417Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 5 juin 2023624 5 juil. 2018 à 14:08
et manifestement tu ne comprends pas non plus qu'en te contentant de répéter "j'arrive pas" ça ne me permet pas de cerner ce que tu ne comprends pas.
Il y a 2 lignes de codes, parmi les plus simples en VB.Net.
Un exemple tout prêt à tester, que tu ne m'a toujours pas dit si tu avais pris la peine d'essayer.
Bref.....
KyneasSurYoutube
Messages postés7Date d'inscriptionmercredi 4 juillet 2018StatutMembreDernière intervention 6 juillet 2018 5 juil. 2018 à 18:32
J'ai essayé mais cela n'as rien fait :/ Je voudrais le faire marcher sur :
Private Sub StartInstall_Click(sender As Object, e As EventArgs) Handles StartInstall.Click
SetAttr("C:\Program Files (x86)\", vbNormal)
My.Computer.FileSystem.CreateDirectory("C:\Program Files (x86)\***LOGICIELNAME***")
End Sub
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 5 juil. 2018 à 19:43
Bonjour à vous deux
Déjà lorsque je vois le nom de la sub StartInstall je me pose cette question :
KyneasSurYoutube veut-il faire l'installation d'un projet pour avoir l'éxécutable sur son PC comme n'importe quel Setup classique d'un logiciel ?
Si le dossier "C:\Program Files (x86)" n'est pas accessible directement c'est que c'est justement dans ce dossier que les installations avec un vrai Setup se font et qu'il y a des contraintes bien précises pour créer un setup d'installation
Surtout qu'il demande que ce dossier ait l'attribut Normal pour ensuite créer dans ce même dossier le dossier de son "LOGICIELNAME" comme le montre son code
Private Sub StartInstall_Click(sender As Object, e As EventArgs) Handles StartInstall.Click
' attribut Normal
SetAttr("C:\Program Files (x86)\", vbNormal)
' création répertoire
My.Computer.FileSystem.CreateDirectory("C:\Program Files (x86)\***LOGICIELNAME***")
End Sub
Attendons de savoir le but de ce code pour poursuivre la dicussion
KyneasSurYoutube
Messages postés7Date d'inscriptionmercredi 4 juillet 2018StatutMembreDernière intervention 6 juillet 2018 6 juil. 2018 à 10:00
Bonjour,
Oui c'est pour faire un Set-Up de logiciel...
Merci de ta réponse.
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165
>
KyneasSurYoutube
Messages postés7Date d'inscriptionmercredi 4 juillet 2018StatutMembreDernière intervention 6 juillet 2018 6 juil. 2018 à 10:47
Bonjour
Et ce logiciel est un projet que tu as codé avec Visual Studio Net ?
Si oui précises-moi quel est ta version de visual Studio ?
Car Visual Studio intègre les outils pour faire directement un Setup mais la procédure est différente selon les versions
Whismeril
Messages postés18417Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 5 juin 2023624 5 juil. 2018 à 23:14
J'ai essayé mais cela n'as rien fait :/
Là au moins ça apporte une information utile, ce code exemple est fonctionnel, mais il faut avoir quelques bases de programmation pour le lancer. Je suppose donc que tu es autodidacte et comme la grande majorité (moi aussi il fut un temps) tu as fait l'impasse sur les bases.
Ça finit toujours par coincer, là c'est simple, mais la prochaine fois ça le sera peut-être moins.
Le meilleur conseil que je puisse te donner est de prendre quelques jours pour suivre un cours en ligne.
Celui-ci est pas mal http://plasserre.developpez.com/cours/vb-net/ Ça te donnera un socle de départ, et tu pourras reprendre ton projet plus efficacement.
Pour ton problème présent.
La classe Environment est une classe "Shared" ça veut dire qu'on ne peut pas l'instancier.
Pour utiliser une méthode, on fait donc
Environment.LaMethode()
La méthode GetFolderPath retourne le chemin d'un dossier système, en fonction du paramètre qu'on lui rentre.
Le paramètre est du type Environment.SpecialFolder, c'est une énumération, c'est à dire une liste de constante.
Par exemple, DayOfWeek est une énumération, avec les constante DayOfWeek.Monday, DayOfWeek.Tuesday, etc...
Dim chemin as string = Environment.GetFolderPath(Environment.SpecialFolder.System)
comme dans l'exemple va placer le chemin du dossier System dans la variable chemin.
Parmi toutes les valeurs Environment.SpecialFolder, il y en a une pour ProgramFiles X86, à utiliser sur un système X64. Sur un système X86, c'est ProgramFiles. Il faut donc tester le type de système avant de choisir la constante
@VB95, bonsoir.
Pour l'attribut et le fait de mettre son programme dans ce répertoire, j'ai envie de dire, quelque part c'est son problème.
KyneasSurYoutube
Messages postés7Date d'inscriptionmercredi 4 juillet 2018StatutMembreDernière intervention 6 juillet 2018 6 juil. 2018 à 10:02
Bonjour,
D'accord, je prend note. Merci de ta réponse.
Whismeril
Messages postés18417Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 5 juin 2023624 6 juil. 2018 à 10:54
Modifié le 4 juil. 2018 à 18:09
Merci de votre réponse mais le problème c'est que je ne sais pas comment utiliser cette environnement...
4 juil. 2018 à 18:16
Qu'as tu essayé avec?
4 juil. 2018 à 20:33