Code permettant le verrouillage de certaines fonctions de windows (via le registre). Des mise à jour sont à faire, les commentaires, propositions, suggestions et les critiques sont les bienvenue.
("Seul celui qui connait ces erreurs progresse" Galactus13)
Je reconnais que je n'ai rien inventé dans ce source.
Source / Exemple :
'Il y a ici uniquement le module pour le reste voir dans le zip
Option Explicit
'>>>>>>>>>>>>>>>>>>>>>>>>>
'Déclaration des variables
'<<<<<<<<<<<<<<<<<<<<<<<<<
Public HeureDebut As Integer
Public HeureFin As Integer
Public MinutesDebut As Integer
Public MinutesFin As Integer
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'Crée l'objet WindowsScriptingHost
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Public WshShell As Object
Public Cle_commune As String
Public Sub GenererRapport(RichTextBox As RichTextBox, _
Arreter As Boolean, _
Executer As Boolean, _
MnuContext As Boolean, _
Recherche As Boolean, _
Bureau As Boolean, _
Gestionnaire As Boolean)
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'Module generant le Rapport de Verrouillage
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
'Open App.Path & "\rapport.Log" For input As #1
RichTextBox.Text = "Rapport de verrouillage generé par VerrouPC" & vbCrLf & _
vbNullChar & vbCrLf & _
"Fonctions bloquées :" & vbCrLf & _
"Faux = Fonction active" & vbCrLf & _
"vrai = Fonction verrouillée" & vbCrLf & _
vbNullChar & vbCrLf & _
"Bouton arrêter = " & Arreter & vbCrLf & _
"Executer = " & Executer & vbCrLf & _
"Menu Contextuel = " & MnuContext & vbCrLf & _
"Recherche = " & Recherche & vbCrLf & _
"Bureau (si ça marche !)= " & Bureau & vbCrLf & _
"Gestionnaire de Tâches = " & Gestionnaire
End Sub
Public Sub NoArreter(Actif As Boolean)
'>>>>>>>>>>>>>>>>>>>>>>>>>>>
'Désactive le bouton arrêter
'<<<<<<<<<<<<<<<<<<<<<<<<<<<
If Actif = True Then
WshShell.regwrite Cle_commune & "\Noclose", 1, "REG_DWORD"
Else
WshShell.regwrite Cle_commune & "\Noclose", 0, "REG_DWORD"
End If
End Sub
Public Function KillProcess(ByVal NomProcessus As String) As Boolean
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'Kill le Processus en connaissant le nom de l'exe
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Dim svc As Object
Dim sQuery As String
Dim oproc
Set svc = GetObject("winmgmts:root\cimv2")
sQuery = "select * from win32_process where name='" & NomProcessus & "'"
For Each oproc In svc.execquery(sQuery)
oproc.Terminate
Next
Set svc = Nothing
End Function
Public Sub NoBureau(Actif As Boolean)
'>>>>>>>>>>>>>>>>>>>
'Désactive le bureau
'<<<<<<<<<<<<<<<<<<<
If Actif = True Then
WshShell.regwrite Cle_commune & "\NoDekstop", 1, "REG_DWORD"
Else
WshShell.regwrite Cle_commune & "\NoDekstop", 0, "REG_DWORD"
End If
End Sub
Public Sub NoGestionnaire(Actif As Boolean)
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'Désactive le gestionnaire de tâches
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
If Actif = True Then
WshShell.regwrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr", 1, "REG_DWORD"
Else
WshShell.regdelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr"
End If
End Sub
Public Sub NoMnuContext(Actif As Boolean)
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'Désactive les menu clic droit
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
If Actif = True Then
WshShell.regwrite Cle_commune & "\NoViewContextMenu", 1, "REG_DWORD"
Else
WshShell.regwrite Cle_commune & "\NoViewContextMenu", 0, "REG_DWORD"
End If
End Sub
Public Sub NoRecherche(Actif As Boolean)
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'Désactive la fonction Recherche
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
If Actif = True Then
WshShell.regwrite Cle_commune & "\NoFind", 1, "REG_DWORD"
Else
WshShell.regwrite Cle_commune & "\NoFind", 0, "REG_DWORD"
End If
End Sub
Public Sub NoRun(Actif As Boolean)
'>>>>>>>>>>>>>>>>>>>>>>>>>>>
'Sub désactivant le Executer
'<<<<<<<<<<<<<<<<<<<<<<<<<<<
If Actif = True Then
WshShell.regwrite Cle_commune & "\NoRun", 1, "REG_DWORD"
Else
WshShell.regwrite Cle_commune & "\NoRun", 0, "REG_DWORD"
End If
End Sub
Conclusion :
A vous de me le dire !
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.