Auque la solución propuesta por ecfisa es valida. Puedes probar algo más cómo y simple. Utiliza la API de Windows. Precisamente la función
GetLastInputInfo.
Código Delphi
[-]var
LastInputInfo: PLASTINPUTINFO;
begin
if GetLastInputInfo(LastInputInfo) <> 0 then
if LastInputInfo.dwTime => (60000 * 3) then
Self.Close;
end;
El procedimiento anterior lo puedes utilizar en un Timer que se ejecute ciclícamente entre un periodo determinado.
Saludos,
Chris
PD:
@oscarac: Vieras como me reí de la fotode
ecfisa que has colgado... jajaja