Bloquer le taskmgr sans clé de registre

Contenu du snippet

Suite a une question que j'ai poser sur le forum

en vain

j'ai chercher et trouvé le moyen de bloqué le taskmgr sans utiliser les clé de registre

pour sa j'ai utiliser une méthode que j'avais utiliser pour une de mets autre source 'KeygenMe Protection'

la methode des Handles bien connus (je vous apprend rien)

sauf que la j'ai utiliser le fichier U_Controle.pas de Kenavo ici:

http://www.delphifr.com/code.aspx?ID=22078

pour l'adapter a mes besoin

et ensuite j'ai utiliser un timer qui tourne en boucle toute les milli-secondes

dans la procédure du timer j'ai mis le code qui détecte si tel ou tel fenêtre et

ouverte si c'est le cas on la ferme sans se poser de question

Source / Exemple :


//Le pire c'est que c'était tous simple
//bref.......
//une fichier *.pas est à ajouter dans le proget

     unit U_Controle;

    interface

    uses
      Windows, SysUtils, Messages;

    function HandleOf(TitreFenetre : String): THandle;
    function HandleOfChild(HndlParent : THandle; Classe, Titre : String; PrevHandle : THandle): THandle;
    Function ClickOn (Handle : THandle): boolean;
    Function ClickOnW (Handle : THandle): boolean;
    function SetEditText(h : THandle; s : String) : boolean;

    implementation

    // ---------------------------------------------------
    // Il faut absolument respecter majuscules-minuscule
    //  dans les nom des fenêtres ou des contrôles
    // ---------------------------------------------------

    function HandleOf(TitreFenetre : String): THandle;
    begin
      Result :=0;
      //Retrouve le Handle de la fenêtre principale
      Result := FindWindow(nil, PChar(TitreFenetre));
    end;

    function HandleOfChild(HndlParent : THandle; Classe, Titre : String; PrevHandle : THandle): THandle;
    var
      ProgramHwnd : THandle;
    begin
      // retrouve le handle d'un controle enfant de type Classe de nom (caption) Titre
      Result :=0;
      if HndlParent<>0 then
        result := FindWindowEx(HndlParent, PrevHandle, Pchar(Classe),Pchar(Titre));
    end;

    Function ClickOn (Handle : THandle): boolean;
    begin
      // PostMessage
      // n'attend pas la fin de traitement du message
      Result := BOOLEAN( PostMessage(Handle, BM_CLICK, 0, 0) );
    end;

    Function ClickOnW (Handle : THandle): boolean;
    begin
      // SendMessage
      // Attend la fin de traitement du message
      Result := BOOLEAN( SendMessage(Handle, BM_CLICK, 0, 0) );
    end;

    function SetEditText(h : THandle; s : String) : boolean;
    begin
      // Modifie le Contenu d'un TEdit
      // Modifie le Nom (caption) d'un controle ou d'une form
      Result := BOOLEAN( SendMessage(h,WM_SETTEXT,0,DWord(Pchar(s))) );
    end;

    end.

//et sur votre fiche .pas ajouter dans uses U_Controle et pour finir
//sur votre TForm mettais un timer et réglé son Interval sur 1
//et Enabled sur true
//mettais ceci dans la procedure du timer1

     procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      aHandle := HandleOf('Gestionnaire des tâches de Windows');
        if aHandle <> 0 then begin
          SendMessage(aHandle, WM_CLOSE, 0, 0);
        end;

    end;

//Pensez a déclarer votre variable 'ahandle' comme ceci: var //ahandle:thandle;

Conclusion :


voilii voiloo
maintenant dans n'importe quel session on peut bloquer le taskManager
vous pouvez faire sa avec toute sorte d'application si vous avez le titre de sa Caption (titre de sa fenetre)

Toute amélioration de ce code est bien sur la bienvenue

@++

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.