File folder locker - bloquer (et débloquer) l'accès à certains fichiers et dossiers [dll]

Soyez le premier à donner votre avis sur cette source.

Vue 10 470 fois - Téléchargée 1 082 fois


Description

Cette DLL est une collection de fichier et dossier sur laquelle vous pourrez appliquer un verrou

le code est très simple puisqu'au final ce n'est que l'utilisation d'une seule API : CreateFile

avec la collection et quelques tests on peut ainsi s'assurer du type de chemin fourni, avec un résultat de réussite à chaque ajout

la dll est fournie avec un projet test permettant la manipulation des différents éléments, le code d'utilisation est très léger (cf ci-dessous)

NB : ATTENTION, ne verrouillez pas n'importe quel fichier à l'aveuglette!!!
je ne pourrai être tenu responsable d'un mauvais usage de cette source!

Source / Exemple :


Dim AfProtector As New AFCK_Protector.AfClsProtector
'
Private Sub Form_Load()
    AfProtector.AddElement "C:\fichier.txt", True
    AfProtector.AddElement "C:\dossier_privé", True
    'le fichier et le dossier seront inaccessibles à l'utilisateur
End Sub
Private Sub Form_Unload(Cancel As Integer)
'   débloquage automatique
    Set AfProtector = Nothing
End Sub

Conclusion :


Cette source répond à une demande du forum qui revient de temps en temps.
pis çà faisait quelques temps que je n'avais pas posté ;)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Salut,

il n'y a rien dans le framework .Net ni même en fonction Win32 pour "délocker" simplement.


Par contre comme méthode de délockage, on peut par exemple demander la fermeture du handle ouvert par Createfile :

Public Function CloseProcessLocalHandle(ByVal dwProcessID As Integer, ByVal hHandle As Integer) As Integer
Dim hMod As Integer
Dim lpProc As Integer
Dim hThread As Integer
Dim hProcess As Integer

hMod = GetModuleHandle("kernel32.dll")
lpProc = GetProcAddress(hMod, "CloseHandle")
hProcess = OpenProcess(PROCESS_CREATE_THREAD Or PROCESS_VM_OPERATION Or PROCESS_VM_WRITE Or PROCESS_VM_READ, 0, dwProcessID)
If hProcess Then
hThread = CreateRemoteThread(hProcess, 0, 0, lpProc, hHandle, 0, 0)
If hThread Then
WaitForSingleObject(hThread, INFINITE)
GetExitCodeThread(hThread, CloseProcessLocalHandle)
CloseHandle(hThread)
End If
CloseHandle(hProcess)
End If
End Function


Faut créer un remote thread et lancer le CloseHandle dans le process cible.

@+
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
salut,

on ouvre pas vraiment, disons qu'on applique un flag d'ouverture plutôt ;)
je ne sais pas s'il y a de quoi forcer la fermeture dans le framework (çà m'étonnerait assez pour ce cas précis)

++
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
Bonsoir,

Je n'ais pas regardé la source (pas de vb6 sous la main)
Si j'ai bien compris ca ouvre le fichier et le bloque en lecture, mais il y a une API ou même une fonction en .Net il me semble qui dévérouille les fichiers bloqués en R/W ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.