begin process at 2008 07 04 23:32:53
1 204 997 membres
512 nouveaux aujourd'hui
14 118 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BLOQUER LE TASKMGR SANS CLÉ DE REGISTRE


Information sur la source

Catégorie :Exécution Classé sous : TaskManager, bloquage, handle, registre, timer Niveau : Débutant Date de création : 21/03/2008 Date de mise à jour : 21/03/2008 13:49:37 Vu : 2 387

Note :
Aucune note

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

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

  • //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;
//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

@++

21 mars 2008 11:01:46 :
erreur de frappe
21 mars 2008 13:49:37 :
petit oublie involontaire: Pensez a déclarer votre variable 'ahandle' comme ceci: var ahandle:thandle;
  • signaler à un administrateur
    Commentaire de cirec le 22/03/2008 00:07:18 administrateur CS

    Content que tu ais trouvé une solution à ton problème.

    Mais on ne peut pas laisser cette "source" ici...

    L'essentiel du code n'est pas de toi et la partie qui est de toi (même si elle fonctionne) reste du bricolage.

    Je ne pense pas que mettre un Timer avec un interval à 1 milliseconde soit une bonne solution pour détecter la présence d'une application.

    @+
    Cirec

  • signaler à un administrateur
    Commentaire de cirec le 22/03/2008 11:20:08 administrateur CS

    et je te conseil d'en faire de même ici :
    http://coding.xooit.org/t229-src-Bloque-le-TaskMgr-sans-Cle-de-Registre.htm

    puisque sur cette page tu t'es déjà approprié le code :(

    je cite
    "Salut a tous

    bon après quelques tests et quelques échecs et
    0 réponse de la part des communautés extérieur

    j'ai réussi tous seul comme un grand

    et le pire c'est que c'était tous simple
    "

  • signaler à un administrateur
    Commentaire de Kenavo le 23/03/2008 08:20:37

    "sauf que la j'ai utiliser(sic) le fichier U_Controle.pas de Kenavo ici:
    http://www.delphifr.com/code.aspx?ID=22078
    pour l'adapter a(resic) mes besoin(reresic)"

    Adapter, dis-tu ! En quoi ? Tout juste utilisé !
    Tu n'as même pas corrigé la faute d'orthographe des commentaires
    ".. dans les nom des fenêtres ou des contrôles "

    Tout ça ne serait pas bien grave, puisque le but de ce site est de partager des codes et des idées, et que tu cites ici l'origine du code que tu utilises, mais pourquoi n'en fais-tu pas autant sur coding.xooit.org ?
    Il serait digne, élégant, et pour tout dire plus honnête, que tu y ajoutes toi-même un message précisant l'origine de ce code. Je ne souhaite pas le faire moi-même ...
    Et puis faire connaître Delphifr est toujours une bonne action.

    Ken@vo

  • signaler à un administrateur
    Commentaire de matrix1 le 23/03/2008 12:15:45

    Thread + Hook ça fera l'affaire mais tj sensible pour certain anti virus.

  • signaler à un administrateur
    Commentaire de BruNews le 24/03/2008 15:13:05 administrateur CS

    'Gestionnaire des tâches de Windows' n'ira que sur Windows french, vraiment très restrictif pour un truc aussi simple à réaliser.

    SetWindowsHookEx de type WH_CBT.
    Quand dwReason du DllMain vaut DLL_PROCESS_ATTACH, on controle par GetModuleFileName si le processus qui se crée est taskmgr.exe et si c'est le cas on appelle illico ExitProcess(0).
    Voila tout.

  • signaler à un administrateur
    Commentaire de craftsystem le 24/03/2008 16:59:44

    Excuser moi pour ma lenteur a répondre

    mais je n'été pas là ce WeekEnd

    Bon pour commencé toute mets escuse a tous

    pour ne pas avoir cité Kenavo sur Coding

    Mais c'est vraiment un oublie involontaire

    bref c'est corrigé et en rouge sang pour que tous le monde puise le voir

    dans une réponse pour signalé un nouveaux Message

    Je l'aurais corrigé en rentrant sur (je suis pas un Lamer)

    J'ai déjà déposer des sources de Mauricio avec sont accord bien sur et je

    l'ai cité (DelphiFr et déjà connus sur mon site)

    j'en aurais fait autant pour Kenavo

    vous auriez put le signalé sur mon site sa ne m'aurait pas tuez loin de là

    je sais que je ne l'ai pas fait volontairement et les membres de Coding le

    savent aussi bien que moi.

    mets j'été tellement excité d'avoir trouvé que je me suis dépécher de poster

    voilà donc pour mets esplication.

    le principal (la méthode)
    J'ai procéder comme çà car sa faisait quatre jour que j'avais poster la question mets personne ne ma répondus dans aucun des forums
    5 ou 6
    Donc j'ai tester la technique des Handles mets là je me suis heurter a un gros problème
    Car le taskmrg a comme Handle #32770 et beaucoup de chose fonctionne avec cette handle
    et en particulier tous les Dialog de sauvegarde et d'ouverture
    de fichier

    donc j'ai chercher le moyen de faire çà autrement et je suis tombé sur la source de Kenavo qui l'utilisé pour contrôlé une autre application
    celon sa Caption et là met yeux on brillé de mille éclat

    Ce que je veux dire par adapté: c'est simplement que je l'ai utilisé pour une autre utilité que la tienne Kenavo c'est tous...
    pourquoi ne pas avoir corrigé tes fautes d'orthographe: car j'aidéjà que j'ai du mal a me corrigé alors je ne vais pas me cassé le crane a le faire pour les autres

    et ce qui importe c'est la qualité du code

    voilà messieurs la seul chose que je voulais faire c'été poster une réponse
    a ma question pour le futur et évité que certain traine sur le web pendant prêt d'une semaine et que personne et l'amabilité de pouvoir répondre a une question qui vu les réponses de ce poste avait des réponses claire et sans doute fiable voilà

  • signaler à un administrateur
    Commentaire de imi le 25/03/2008 11:23:06

    KENAVO, visiblement il n'aurait pas pu corriger tes fautes d'orthographe ... ;-)

  • signaler à un administrateur
    Commentaire de Caribensila le 25/03/2008 15:57:53

    Je dirais même plus :  
    il l'a échappé belle KENAVO!
    Il aurait pu en rajouter une paire.   mdr

  • signaler à un administrateur
    Commentaire de matrix1 le 25/03/2008 16:41:41

    Excuser moi ! mais  de quel version de windows vous parlez

  • signaler à un administrateur
    Commentaire de craftsystem le 26/03/2008 19:44:33

    Caribensila....lol c'est même certain...

    MATRIX1 pour ma part je tourne sur XP SP2...

Ajouter un commentaire

Discussions en rapport avec ce code source

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS