Пример процедуры убивающей таймеры по заголовку окна в чужих приложениях написанных на Delphi

Материал из DRKB

Пример процедуры убивающей таймеры по заголовку окна в чужих приложениях написанных на Delphi[править | править код]

var
 HInst : THandle;
 WndArr : array of THandle;
 Wnd : THandle;


procedure KillDelphiWndTimers(const AppCaption: string);
var
  i: Integer;

  function GetTimerWindows(Handle: HWND; Info: Pointer): BOOL; stdcall;
  const
    sClName = 'TPUtilWindow';
  var
    s: string;
  begin
    Result := True;
    SetLength(s, Length(sClName)+1);
    GetClassName(Handle, PChar(s), Length(s));
    SetLength(s, Length(sClName));
    if (GetWindowLong(Handle, GWL_HINSTANCE) = HInst ) and (s = sClName) then
    begin
      SetLength(WndArr, High(WndArr)+2);
      WndArr[High(WndArr)] := Handle;
    end;
  end;

begin
  Wnd := FindWindow(nil, PChar(AppCaption));
  if Wnd = 0 then Exit;
  HInst := GetWindowLong(Wnd, GWL_HINSTANCE);
  EnumWindows(@GetTimerWindows, 0);
  for i := 0 to High(WndArr) do KillTimer(WndArr[i], 1);
end;


Author: Radmin
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 02120