Dossier "Crypté" (Appli nécessaire)

Résolu
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 - 25 avril 2010 à 15:10
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 - 1 juil. 2013 à 22:45
Bonjour à tous,

Petit casse-tête...

Je stocke des dossiers dans un répertoire central. Une application Excel 2003 permet d'ouvrir chaque Dossier qui s'y trouve, et je veux que ces Dossiers ne puissent PAS êre ouverts directement pas l'explorateur mais UNIQUEMENT par mon appli.
J'ai vu sur un site une astuce qui consiste à renommer ce répertoire central en ajoutant la syntaxe ci-dessous à son nom d'origine.
MonRep = > MonRep.{21EC2020-3AEA-1069-A2DD-08002B30309D}


J'appelle donc une sub "CryptOff" à l'ouverture de mon appli, et une "CryptOn" à sa fermeture pour cette opération.

Sub CryptOn ()
Crypt = Dir("C:\MonRep", vbDirectory)
If Crypt = "" Then
    Dir1 = "C:\MonRep"
    Dir2 = "C:\MonRep.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
    Name Dir1 As Dir2
End if
'--------
Sub CryptOff ()
Crypt = Dir("C:\MonRep.{21EC2020-3AEA-1069-A2DD-08002B30309D}"vbDirectory)
If Crypt = "" Then
    Dir1 = "C:\MonRep.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
    Dir2 = "C:\MonRep"
    Name Dir1 As Dir2
End if


Quand l'appli est fermée, c'est nickel, mon répertoire principal est bien inaccessible par l'explorateur... Mais évidemment PAS quand elle est ouverte !

Ma question : comment faire pour ouvrir un Dossier par une macro VBA de mon appli en laissant le répertoire principal "crypté" ??

Sub OpenMonDossier1 ()
'Essai infructueux de l'ouverture de MonDossier, c'est normal avec Explorer.exe!
Dim MonDossierExist
MonDossierExist = Dir("C:\MonRep.{21EC2020-3AEA-1069-A2DD-08002B30309D}\MonDossier", vbDirectory)
'le Dir "voit" bien si MonDossier existe
If MonDossierExist <> "" Then shell "explorer.exe C:\MonRep.{21EC2020-3AEA-1069-A2DD-08002B30309D}\MonDossier", vbMaximizedFocus 'ouvre MonDossier
End Sub

'*****************
Sub OpenMonDossier2 ()
'Essai infructueux d'une copie de MonDossier dans un répertoire existant "Test" par Fso Copyfolder
Dim MonDossierExist
MonDossierExist = Dir("C:\MonRep.{21EC2020-3AEA-1069-A2DD-08002B30309D}\MonDossier", vbDirectory)
If MonDossierExist <> "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
fso.copyfolder "C:\MonRep.{21EC2020-3AEA-1069-A2DD-08002B30309D}\MonDossier", "C:\Test\MonDossier"
Shell "explorer.exe C:\Test\MonDossier", vbMaximizedFocus
End If
End Sub

'*****************
Sub OpenMonDossier2 ()
'Essai infructueux par Name
Name ("C:\MonRep.{21EC2020-3AEA-1069-A2DD-08002B30309D}\MonDossier") As ("C:\Test\MonDossier")
Shell "explorer.exe C:\Test\MonDossier", vbMaximizedFocus                               
End If
End Sub


Quelle bonne âme aurait une idée ?
Merci beaucoup!
Rataxes64

7 réponses

CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
1 juil. 2013 à 22:45
Bonsoir,

On en restera là... C'est désormais obsolète.

Merci quand même.

Cordialement
Rataxes64
3
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
25 avril 2010 à 21:41
Crée un utilisateur dans Active Directory ayant seulement des droits sur le répertoire protégé. Empêche à tout le monde sauf les administrateurs l'accès au dossier que tu veux protéger. Il te suffit maintenant d'utiliser l'API CreateProcessWithLogonW
---
VB.NET is good ... VB6 is better
0
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
26 avril 2010 à 01:08
Hé non, malheureusement... L'administrateur du domaine interdit ce genre de procédé... C'est bien pour ça que j'ai utilisé "l'astuce" de ce "cryptage", qui n'en est pas un, puisque " n'importe qui peut renommer le répertoire... Mais cela évite des tentations ou des fausses manipulations, car encore faut-il SAVOIR ce que "cache" ce répertoire, qui affiche l'icône et le contenu du Panneau de config... tant qu'il n'est pas renommé.


Rataxes64
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
26 avril 2010 à 18:31
Ben alors dommage pour toi. Et pourquoi il interdit ce genre de pratiques ?
---
VB.NET is good ... VB6 is better
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
26 avril 2010 à 19:43
Le réseau de l'entreprise est mondial et sous contrôle CAT.
Seuls les Administrateurs Domaine ont la main sur les paramètres Accès, Lecture, Ecriture, Droits, j'en passe ...
Alors rien que pour les autorisations nécessaires à LogonUser() ou CreateProcessAsUser() : Même pas en rêve !
Merci quand même de ta réponse.

Si d'aventure une autre idée se faisait jour et pouvait passer par ce Post, elle sera accueillie bras ouverts...

Rataxes64
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
26 avril 2010 à 19:52
Tu pourrais aussi utiliser une base MySQL pour stocker tes données. Mais bon courage pour adapter ton programme !
---
VB.NET is good ... VB6 is better
0
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
11 mai 2010 à 14:33
Bonjour à tous,
Heu... un "petit" UP ?
Merci d'avance

Rataxes64
0
Rejoignez-nous