检测另一个应用程序的标题何时更改

时间:2014-09-12 11:40:59

标签: delphi

正如标题所述,我试图检测另一个应用程序的标题何时更改并仅在标题与上次检查时不同时执行特定操作。我不确定它是否有帮助,但这是我用来获取其他应用程序标题的代码。

function GetWinCaption: string;
var
  Handle: THandle;
  Len: LongInt;
  Title: string;
begin
  Result := '';
  Handle := FindWindow('Classname_Goes_Here', nil);
  if Handle <> 0 then
  begin
    Len := GetWindowTextLength(Handle) + 1;
    SetLength(Title, Len);
    GetWindowText(Handle, PChar(Title), Len);
    GetWinCaption := TrimRight(Title);
  end;
end;

上面的代码可以正常工作以获取标题,但是我很难绕过我需要编写的代码来实际执行检查以查看标题是否已更改。

这是我一直在进行检查的代码,但我不确定这是做这个的最好方法,并且可以使用在这方面有更多经验的人的建议。

var
 CurrCaption, PrevCaption : string;
...
...

if (CurrCaption = '') or (CurrCaption = PrevCaption) then
  begin
    CurrCaption := GetWinCaption;
  end
else
  begin
    PrevCaption := CurrCaption ;
  end;

// and then later on I do the comparison like this. 

if CurrCaption = PrevCaption then
  begin
    ShowMessage('not changed');
  end
else
  begin
    ShowMessage('changed');
  end; 

0 个答案:

没有答案