在OSX上检测多设备应用程序中的空闲时间

时间:2016-03-18 11:42:29

标签: macos delphi delphi-10-seattle

我需要检测空闲时间,时间因为用户已经将任何东西输入到他们的机器中,所以我以前只为Windows制作了这个应用程序,这个功能非常出色: -

function IdleTime: DWord;
var
  LastInput: TLastInputInfo;
begin
  LastInput.cbSize := SizeOf(TLastInputInfo);
  GetLastInputInfo(LastInput);
  Result := (GetTickCount - LastInput.dwTime) DIV 1000;
end;

但是,此功能在多设备应用程序上不起作用(据我所知)。我已经搞砸了一段时间了,并做了一些严厉的谷歌搜索无济于事。

目标操作系统是OS X和Windows。

1 个答案:

答案 0 :(得分:2)

OSX上的GetLastInputInfo相当于CGEventSourceCounterForEventType

请参阅:https://developer.apple.com/library/mac/documentation/Carbon/Reference/QuartzEventServicesRef/index.html#//apple_ref/c/func/CGEventSourceCounterForEventType

见这里:Detecting user-activity on mac os x

此次通话的API界面位于:Macapi.CoreGraphics
因此,您需要将该单元添加到您的uses子句中。

如果您不熟悉Delphi下的OSX编程,请查看:https://delphihaven.wordpress.com