Vb6 - fonction qui bloque le bureau

Cette source est considérée comme dangereuse, elle a néamoins été gardée dans un but pédagogique :
Cette source est considérée comme dangereuse, elle a néamoins été gardée dans un but pédagogique.

Contenu du snippet

Pour les besoins de mon soft, les utilisateurs ne devaient pas avoir accès à autre chose que mon appli vb, hors les raccourcis style "alt+f4" ou "ctrl+echap" ou encore la touche spéciale Windows rendait la main au bureau...

L'expérience m'a appris: lorsque tu as un problème, attaque toi à sa racine pour plus d'efficacité.
Comme je n'arrivais pas a trouver de sources simples pour désactiver le taskmanager et les raccourcis clavier, hé bien je me suis attaqué directement au bureau, et oui car sans bureau, plus de raccourcis, plus de menu démarrer, plus rien quoi. Après quelques petites recherches sur la base de registre, j'ai pu trouver mon bonheur rapidement. Je vous présente donc mon code sous forme de fonction simple, en espérant que ça puisse servir à ceux qui comme moi n'ont pas trop envie d'utiliser des api de 3 pages pour détecter 3 ou 4 malheureuses touches...

Pour utiliser la fonction, tapez ceci dans votre code:

BloquerBureau True 'bloquera le bureau
BloquerBureau False 'débloquera le bureau et rendra la main à windows

PS: Fonctionne seulement sous XP, car je doute que les version antérieures gèrent le TSkill et qu'elles possèdent les même adresses pour les clés de registre lol

Source / Exemple :


Function BloquerBureau(Rep As Boolean)

'Fonction qui désactive le bureau, soit tous les raccourcis claviers
'et le menu démarrer par la même occasion

'But:   Empêcher les utilisateurs de faire autre chose que de travailler sur
'       l'appli VB afin de protéger l'ordinateur.
'       Utile pour les softs d'ordinateurs en libre accès comme les bornes ANPE

'On déclare notre accès à la base de registre
Dim RegEdit As Object
Set RegEdit = CreateObject("WScript.Shell")

If Rep = True Then

'Blocage bureau
RegEdit.regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoRestartShell", "0", "REG_DWORD"
Shell "tskill explorer" 'Tue le processus explorer.exe
'Bloquer Ctrl+alt+sup (gestionnaire des taches)
RegEdit.regwrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr", "1"

Else

'Débloquer bureau
RegEdit.regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoRestartShell", "1", "REG_DWORD"
Shell "explorer", vbNormalNoFocus 'Relance le processus explorer, fait réapparaitre le bureau
'Débloquer Ctrl+alt+sup
RegEdit.Regdelete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr"

End If

End Function

Conclusion :


C'est le code le plus simple que j'ai pu faire... Si vous avez ds suggestions pour améliorer ça, n'hésitez pas: plus le code est simplifié, plus j'adore :p

A voir également

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.