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