1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellAPI, StdCtrls, ExtCtrls, Contnrs;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
hand : HWND;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
begin
ShellExecute(Form1.Handle, 'open', 'Player.exe', nil, nil, SW_SHOW);
Sleep(1000); //Obligé.. sinon le getForgroundWindow attrape le handle de Form1
hand := GetForegroundWindow();
for i := 1 to 4 do
hand := GetWindow(hand, GW_CHILD);
for i := 1 to 10 do
hand := GetWindow(hand, GW_HWNDNEXT);
Button1.Enabled := false;
Timer1.Enabled := true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var Buffer : String;
mem : Integer;
begin
Mem:=SendMessage(hand,WM_GETTEXTLENGTH,0,0)+1;
SetLength(Buffer, mem);
PostMessage(hand,WM_GETTEXT,Mem,Integer(@Buffer[1]));
Edit1.Text := Buffer;
end;
end. |
Partager