cs_bonagad
Messages postés87Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention19 mai 2012
-
13 mai 2012 à 18:11
cs_bonagad
Messages postés87Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention19 mai 2012
-
19 mai 2012 à 12:44
Bonjour les amis,
Il y a un code qui me dérange depuis quelques jours et je ne trouve pas la solution jusqu'à présent.
Vous avez ci-après le code qui permet de créer un fichier sur disque.
Dim fs As FileStream = File.Create("C:\Program Files (x86)\IBIOUCHE\myfile.drt")
Ce code a toujours marché. mais j'ai constaté hier seulement que le code ne marche que sous windows XP. Car lorsque j'essaie d'exécuter ce code sous wondows 7 il me pose un probllème de sécurité; du genre : << L'accès au chemin d'accès 'C:\Program Files (x86)\IBIOUCHE\myfile.drt' est refusé. >>
J'ai donc décidé de faire des recherches sur tout ce qui concerne la sécurité du code et les permissions. j'ai tenté un semble de codes parmi lesquels :
Sub AddDirectorySecurity(ByVal FileName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal ControlType As AccessControlType)
' Create a new DirectoryInfoobject.
Dim dInfo As New DirectoryInfo(FileName)
' Get a DirectorySecurity object that represents the
' current security settings.
Dim dSecurity As DirectorySecurity = dInfo.GetAccessControl()
' Add the FileSystemAccessRule to the security settings.
dSecurity.AddAccessRule(New FileSystemAccessRule(Account, Rights, ControlType))
' Set the new access settings.
dInfo.SetAccessControl(dSecurity)
End Sub
Sub AddFileSecurity(ByVal fileName As String, ByVal account As String, _
ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)
' Get a FileSecurity object that represents the
' current security settings.
Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)
' Add the FileSystemAccessRule to the security settings.
Dim accessRule As FileSystemAccessRule = _
New FileSystemAccessRule(account, rights, controlType)
fSecurity.AddAccessRule(accessRule)
' Set the new access settings.
File.SetAccessControl(fileName, fSecurity)
End Sub
AddDirectorySecurity(Application.StartupPath,"Robert", FileSystemRights.FullControl, AccessControlType.Allow)
Dim fs As FileStream = File.Create(Application.StartupPath & "\myfile.drt")
AddFileSecurity(Application.StartupPath & "\myfile.drt", "Robert", FileSystemRights.FullControl, AccessControlType.Allow)
Malgré tout essaie l'exception est toujours existante et donc impossibilité de créer le fichier
A présent j'ai besoin de votre aide afin de m'en sorti.
SVP guidez-moi.
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 13 mai 2012 à 18:42
Bonjour,
Sous 7, il faut le droits d'admin pour écrire dans : C:\Program Files (x86) je crois.
As-tu essayé en lançant ton appli en tant qu'administrateur ?
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 15 mai 2012 à 21:14
Bonjour,
Ce message d'erreur peut avoir 3 causes courantes :
- Le fichier est en cours d'utilisation ailleurs
- Les droits d'accès ont été modifiés et les droits ne suffisent plus
- Fichier marqué en "lecture seule".
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_bonagad
Messages postés87Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention19 mai 2012 18 mai 2012 à 16:06
Bonjour les amis,
Décidément personne ne me comprend. Moi qui croyait qu'il pourrait exister un code vb net qui pourrait donner de façon automatique les autorisations de création de fichier à des emplacements spécifiques tels que <<c:\programs files\>>, <<c:\windows\system32>> etc...(j'ai constaté que ces répertoires sont sécurisés. Car lorsque même je décide de créer manuellement un fichier sans mon application, le système me demande bien sûr si je veux exécuter effectivement cette action.)
Je me rends compte qu'il y a personne pour m'aider.
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 18 mai 2012 à 21:04
Bonjour,
"le système me demande bien sûr si je veux exécuter effectivement cette action"
Oui, car il faut les droits d'admin pour écrire.
Donc, il faut essayer en lançant l'appli en tant qu'administrateur, même si tu es déjà connecté sur le compte admin.
Sinon, regardes avec le mot clé RunAs.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
cs_bonagad
Messages postés87Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention19 mai 2012 19 mai 2012 à 12:44
Bonjour les amis ,
En ce moment je ne pu m'empêcher de vous étaler toute la joie qui m'amine et ensuite de vous exprimer ma profonde gratitude car j'ai eu gain de cause.
Mille fois merci à tous ceux qui ont eu l'amabilité de tenter de me répondre.
merci et Vive Codes-SourceS!!!!