Changer caption d'une autre application [Résolu]

Signaler
Messages postés
36
Date d'inscription
dimanche 31 décembre 2006
Statut
Membre
Dernière intervention
31 juillet 2010
-
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
-
bonjour,
j'essaye de faire apparaitre l'horloge sur le caption de la fenetre active,
j'ai arrivé d'ecrire presque 80% du code,
mais j'ai pas pu changer le caption de la fenetre active,
merci en avance

3 réponses

Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
Salut,

En gros il te manque juste l'essentiel !

Tu peux essayer un truc dans le genre, bien que certaines fenêtre semblent être quelque peu rétives à cette solution.




var

  h : THandle;
  p : PChar;
begin
  h := GetForegroundWindow;  // handle de la fenêtre active
  p: =StrNew(pchar(TimeToStr(Now)));
  SendMessage(H, WM_SETTEXT, 256, integer(p)); // changement du caption
  StrDispose(p);
end;
Messages postés
1721
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
30 août 2020
3
Salut,

As-tu essayé avec un TTimer ?
Sinon, montre nous ton code : 80% d'1 ligne, ça va pas saturer la bande passante...
Messages postés
36
Date d'inscription
dimanche 31 décembre 2006
Statut
Membre
Dernière intervention
31 juillet 2010

bonjour japee,c'est ma 80% de code
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
//function EnumerateWindows(wnd:THANDLE;list:TStringList):boolean;stdcall;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

function EnumerateWindows(wnd:THANDLE;list:TStringList):boolean;stdcall;
var
Title : Array[0..255]of Char;
begin
if GetWindowText(wnd,title,256)<>0then
if isWindow(wnd) then
if isWindowVisible(wnd) then
List.Add(PChar(@Title));
result:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Clear;
EnumWindows(@EnumerateWindows,lparam(listbox1.items));
end;

end.

ce que manque est,trouver la fenetre (focused) et changer sa caption