Funkcja wywołuje miganie okna które ma zmienny caption i dynamiczne classname oraz jest zminimalizowane:
function EnumWindowProc(uchwyt:HWnd;P:Pointer):boolean;stdcall;
var
winname,cname:array[0..144]of char;
begin
result:=true;
if (frmMain.TimerBlink.Enabled=False) then
begin
getwindowtext(uchwyt,winname,144);
getclassname(uchwyt,cname,144);
if (Pos('Niezmienny_fragment_caption', winname)>0) then
begin
frmMain.H2:=uchwyt;
if (IsIconic(uchwyt)=True) then
begin
frmMain.TimerBlink.Enabled:=True;
frmMain.TimerBlinkTimer(nil);
end;
end;
end;
end;
Wywołanie funkcji to: EnumWindows(@enumwindowproc,0);
Kod Timera:
public
{ Public declarations }
H2: THandle;
procedure TfrmMain.TimerBlinkTimer(Sender: TObject);
var
Miganie : Boolean;
begin
if (IsIconic(H2)=True) then
begin
Miganie := not Miganie;
FlashWindow(H2, Miganie);
end else
begin
TimerBlink.Enabled:=False;
FlashWindow(H2, False);
end;
end;
Kod może sie wydawać troche zakręcony ale to dlatego że to jest plugin (DLL) i eksportuje nazwe uchwytu do formy na której jest wykorzystywany przez Timera