Tytuł aktywnej aplikacji.

0

Jak zrobić coś takiego.

Chcę, aby mój program co jakiś czas(co 1 sek.) zmieniał tytuł aktywnej aplikacji. Jak zrobić tak, aby aktualizował się napis a nie znów został dodany. Przykład: mam stoper - napis: Czas: 0001 :: Internet Explorer i chcę, aby po sekundie to zostało zmienione na 02 itd. Wiem jak to zrobić, jeśli użytkownik ma tylko jedno aktywne okno i go nie przełańcza, ale jak zrobic to przy kilku ?

Pomocy

0

<font color="green">ale jak zrobic to przy kilku ? </span>

kilka aktywnych okien?? A to mozliwe ? :-P

0

Może spróbuj zapamiętywać uchwyty w zmiennych - tak "na około" :), ale powinno się udać

0

Zapamietuj uchwyt okna. I gdy zmieni się aktywne okno przywróc poprzedni tytuł a zamieniaj na nastepnym.

0

Wg mnie to powinieneś wziąć uchwyt okna, ustawić je na active i wtedy dopiero lecieć z procedurą, zmieniającą captiona czy tam name.

0

Tak, tylko jest problem jak zapisać ich uchwyt. Jest on zmienną HWND i nie moge jej jakoś zapisać. Macie jakiś pomysł ?

0

H : Thandle

0

HWND=Integer

0

Mam wyjscie ztej sytuacji:

[code] function gettitle(Handle: Hwnd):String;
{...}

var
{...}
tab: array of array of String; // Tworzymy tablice, która będzie przechowywać uchwyty i tytuły;
{...}
function TForm1.gettitle(Handle: HWND):String; // Funkcja sprawdza czy Uchwyt jest w tablicy, jesli tak pobiera tytył, jesli nie tworzynowy rekord;
var
nacwin: array[0..128] of char;
i,l:integer;
hnd,res:string;
begin
if(length(tab)>0) then
begin
hnd:=inttostr(longint(Handle));
for l:=0 to length(tab)-1 do
if (Pos(tab[l][0], hnd)>0) then res := tab[l][1];
end;

if(res='') then
begin
sendmessage(Handle, WM_GETTEXT, 128, longint(@nacwin));
i:=length(tab);
setlength(tab, i+1, 2);
tab[i][0] := inttostr(longint(Handle));
tab[i][1] := pchar(@nacwin);
res := pchar(@nacwin);
end;
result:=res;
end;

procedure TForm1.Stoper1Timer(Sender: TObject);
var
achan:hwnd;
begin
achan:=GetForegroundWindow(); // Pobierz uchwyt;
sendmessage(achan, WM_SETTEXT, 0, longint(pchar('Czas: 0000 :: '+gettitle(achan)))); // Nadaj nowy tytuł;
end;

end.
[/code]

1 użytkowników online, w tym zalogowanych: 0, gości: 1