Vb6 - fonction qui bloque le bureau

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 542 fois - Téléchargée 30 fois

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
Ajouter un commentaire Commentaires
Messages postés
332
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
10 avril 2020
1
faut pas oublier le False à la fin sinon reste plus que le plaisir des yeux et appuyer sur le bouton off !!! :)
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

J'ai collé le code dans un Modul et j'ai écris dans le load de mon menu (la page principale) ceci :
BloquerBureau True

Et quand je clique sur quitter de mon appli je met avant End ceci :
BloquerBureau False

Ca marche chez moi, essais le :)
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

waw ! parfait !!!
Loué soit le cerveau qui a codé ça ^^
Messages postés
3
Date d'inscription
samedi 2 juin 2007
Statut
Membre
Dernière intervention
4 juin 2007

je ne comprend pas. ca ne marche pas chez moi... il me dit que RegEdit n'est pas declaré. pourtant il y est dans le public class de form1. si quelqu'un peut m'aider... merci...
Messages postés
139
Date d'inscription
mardi 18 janvier 2005
Statut
Membre
Dernière intervention
8 décembre 2008

Très interessant:
bravo
Afficher les 30 commentaires

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.