Remplacez le gestionnaire des tâches de windows par n'importe quelle autre application (lors de ctrl+alt+suppr)

Description

Ce code modifiera le registre de manière à ce que ce ne soit pas taskmgr.exe qui se lance lors de l'appui sur ctrl+alt+suppr, mais le programme de test de l'exemple !

Rassurez vous, RIEN n'est modifié dans Windows si ce n'est UNE clé registre. De plus, vous pouvez restaurer très facilement taskmgr.exe à partir du programme de test, pas de craintes donc ^_-

MARCHE SUR XP (et peut être sur d'autres ? A vous de me le dire ;))

Nécessite (il me semble) des droits d'admin pour modifier la base de registre.

(PS : c'est encore un bout de code d'un très gros projet)

Source / Exemple :


'Tout repose sur une clé registre, voyez vous même le code :

Option Explicit

'//MODULE contenant une fonciton permettant de remplacer taskmgr par n'importe quelle
'application lors de l'appui sur ctrl+alt+suppr

'*******************************
'***Par Violent_ken 1/09/2006***
'*******************************

'APIs nécessaires

'API utilisée pour fermer une clé ouverte
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
'efface une valeur de clé
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
'créé une clé registre
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
'affecte une valeur
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

'clé root Hkey Local Machine
Private Const HKEY_LOCAL_MACHINE = &H80000002
'type de clé REG_SZ
Private Const REG_SZ = 1

Public Sub ReplaceTaskmgr(ByVal bReplaceOrNot As Boolean, Optional ByVal sFile As String)
'Fonction qui remplace (ou non) le gestionnaire des taches (quand l'on appuie sur ctrl+alt+suppr)

'C'est une simple création de valeur de clé :
'Dans la clé :
'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe
'il faut ajouter une REG_SZ
'de nom=Debugger
'et de valeur=chemin vers l'exécutable
'La suppression de cette clé remet taskmgr.exe

Dim lRet As Long, sPath As String, sName As String
'path de la clé
sPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe"
'nom de la clé
sName = "Debugger"

If bReplaceOrNot Then
    '//on ajoute la clé
    'créé la clé
    RegCreateKey HKEY_LOCAL_MACHINE, sPath, lRet
    'sauvegarde la string désirée dans la clé
    RegSetValueEx lRet, sName, 0, REG_SZ, ByVal sFile, Len(sFile)
    'ferme la clé
    RegCloseKey lRet
Else
    '//enlève la clé
    'créé la clé
    RegCreateKey HKEY_LOCAL_MACHINE, sPath, lRet
    'efface la valeur de la clé
    RegDeleteValue lRet, sName
    'ferme la clé
    RegCloseKey lRet
End If
End Sub

Conclusion :


ATTENTION ! Compilez d'abord le programme avant de l'utiliser, de sorte que App.EXEname (utilisé pour spécifier le nom de l'exécutable du fichier de test) ne renvoie PAS le nom du PROJET (c'est le cas lorsque vous lancez l'application depuis Visual Studio).

Allez y sans craintes, aucun risque de corrompre quoi que ce soit.

Testé sous Windows XP Edition Familiale SP2 + droits admins.

Si çà ne marche pas chez vous, dîtes moi quel est votre OS et si vous êtes Admin. Il se peut qu'il vous faille plus de droits que vous en avez actuellement pour modifier la base de registre.

Codes Sources

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.