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
@++
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.