Gestion du control+alt+suppr sous windows xp

Contenu du snippet

Alors pour les explication, je ne donne rien tout est marqué ici.

Source / Exemple :


{    2er Méthode

    Pour cette façon de faire l'idée c'est de fermer EXPLORER.EXE pour que le
    message du taskMonitor ne soit pas gérer donc pas d'icone dans la barre du
    menu.or ce faisant EXPLORER redémarre automatiquement après x temps
    du à l'appel de taskmgr,comme le service
    taskMgr n'a pas reçu d'autorisation son icone ne pourra pas être affiché,et
    comme le service est déjà démarré toutes demandes subséquantes renvoient 
    au premier service ouvert qui est caché.

    inconvéniants :lenteur du démarrage
                    nécessite un "splash Screen" pour que l'on ne puisse percevoir
                    les actions effectuées ou toutes autres méthode simulant la
                    non disparition de la barre de tâches(capture?) 
    positif:
            + de ressources disponibles question utilisation cpu.

unit unit2;

interface

uses
    Windows,SysUtils,Classes,tlHelp32;

implementation
var

OldVal : LongInt;
C: Boolean;
FH: THandle;
FP: TProcessEntry32;
StartUpInfo: TStartUpInfo;
ProcessInfo1: TProcessInformation;

initialization

case Win32Platform of
    VER_PLATFORM_WIN32_WINDOWS:          //supposé fonctionner sur 95-98 me
     SystemParametersInfo(SPI_SCREENSAVERRUNNING,Word(true),@OldVal,0);
    VER_PLATFORM_WIN32_NT:
     begin
        FH :=CreateToolhelp32Snapshot(2,0);
        FP.dwSize := Sizeof(FP);
        C := Process32First(FH,FP);
        while (C <> false) do
        begin
             if ((UpperCase(ExtractFileName(FP.szExeFile)) ='EXPLORER.EXE')or
                 (UpperCase(FP.szExeFile) ='EXPLORER.EXE')) then
                TerminateProcess(OpenProcess($0001,false,FP.th32ProcessID), 0);
             C := Process32Next(FH,FP);
         end;
         CloseHandle(FH);

         FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
         With StartupInfo do
         begin
            cb := SizeOf(TStartupInfo);
            dwFlags := STARTF_USESHOWWINDOW;
            wShowWindow := SW_HIDE;
         end;
         CreateProcess(PChar('C:\WINDOWS\SYSTEM32\TASKMGR.EXE'), nil, nil, nil, False,
         NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo1);
     end;
end;

finalization
    case Win32Platform of
    VER_PLATFORM_WIN32_WINDOWS:
     SystemParametersInfo(SPI_SCREENSAVERRUNNING,Word(false),@OldVal,0);
    VER_PLATFORM_WIN32_NT:
     begin
        FH :=CreateToolhelp32Snapshot(2,0);
        FP.dwSize := Sizeof(FP);
        C := Process32First(FH,FP);
        while (C <> false) do
        begin
             if ((UpperCase(ExtractFileName(FP.szExeFile)) ='TASKMGR.EXE')or
                 (UpperCase(FP.szExeFile) ='TASKMGR.EXE')) then
             TerminateProcess(OpenProcess($0001,false,FP.th32ProcessID), 0);
             C := Process32Next(FH,FP);
        end;
        CloseHandle(FH);
     end;
    end;
end.

Conclusion :


Si vous voulez remercier quelqu'un contactez yvemoreau, c'est a lui ceci, mais il serait interressant de le diffuser un peu partout je pense.

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.