首页 > 其他分享 >uniGUI应用检测无人操作

uniGUI应用检测无人操作

时间:2024-07-19 17:42:09浏览次数:7  
标签:begin end uniGUI FCnt 检测 UniIdleForm Timeout 无人

在浏览器中运行一个uniGUI应用,当超过一定时间,无人操作时,我们想实现自动退出应用,该如何实现呢?

下面是具体的实现方法:

在MainForm中,增加了一个事件OnSessionIdle,当超过一定时间无人操作时,会触发这个事件,这个时间在哪里设置呢?答案是UniServerModule的AjsxTimeout这个属性,单位毫秒。

利用上面的原理,我们开始实现一个超过30秒无人操作时,自动退出应用。

1.设置UniServerModule.AjaxTimeout:=30000

2.实现MainForm.OnSessionIdle事件:

在这个事件中,我们显示一个提示窗口UniIdleForm,当这个窗口不返回mrOK时,关闭应用。

procedure TMainForm.UniFormSessionIdle(Sender: TObject);
begin
  UniIdleForm.ShowModal(
  procedure(Sender: TComponent; AResult:Integer)
  begin
  if AResult <> mrOK then
    begin
    UniSession.Terminate('Your session terminated because it was idle for 30 seconds!');
    end;
  end
  );
end;

3.接下来,看UniIdleForm的实现:

建立一个UniIidleForm,放置一个UniTimer1,设置Interval=5000,即5秒触发一次。

建立一个私有变量FCnt,初始值设置为6,在UniTimer1的OnTimer事件中,利用FCnt变量,控制计时。当FCnt小等于0时,自动退出窗口并设置返回值为mrCancel。具体的代码:

procedure TUniIdleForm.UniTimer1Timer(Sender: TObject);
begin
  if FCnt <= 0 then
  begin
    ModalResult := mrCancel;
    Exit;
  end;
  UniLabel1.Caption := 'Session will be terminated in <b>' +
  IntToStr(FCnt * 5) + '</b> seconds.<br>' +
  'Please press "Continue" to return to your session.';

  Dec(FCnt);
end;

本文基于官方的例子Session Idle Timeout所写,具体项目在FMSoft\Framework\uniGUI\Demos\Desktop\Session Idle Timeout目录。

本文转自:https://www.cnblogs.com/kinglandsoft/p/Session_Idle_Timeout.html

标签:begin,end,uniGUI,FCnt,检测,UniIdleForm,Timeout,无人
From: https://www.cnblogs.com/tang-delphi/p/18312013

相关文章

  • 无人机遥感图像拼接及处理
    朱老师(副教授)重点国高校及科研院所,长期从事生态系统管理、全球变化生态学、生态模型与遥感、气候变化,生态环境数据处理与分析相关工作。发表SCI/EI论文多篇。主持国家自然科学基金等各类纵向科研项目多个。无人机遥感图像采集流程:无人机遥感监测介绍无人机航线规划设计无人......
  • 电子组件的自动AXI射线检测
    检查PCBA缺陷的AOI、3DAOI系统有一个局限性:即使是AOI也无法目视检查人眼隐藏的东西。带有平面端子的组件(如BGA、CSP、倒装芯片或QFN)的焊点通常不可见,现在每三个焊点中就有一个是隐藏的。然而,电子组件的可靠性本质上与这些焊点的质量有关。X射线检测可以查看组件内部,并可以显着减......
  • 萝卜快跑无人出租车是有人远程代驾? 客服:没有人操控
      ChatGPT狂飙160天,世界已经不是之前的样子。更多资源欢迎关注近期“萝卜快跑”无人驾驶网约车相关话题引发网友热议。有网传图片显示,萝卜快跑机器人智控中心,有真人坐在带有方向盘的屏幕前;有网友认为所谓的无人网约车,只是把司机从车上换到办公室了。据凤凰网科技报......
  • 揭秘Java世界:轻松检测两个List是否有交集
    哈喽,大家好,我是木头左!快速入门:什么是List的交集?在Java中,当提到两个List的交集,指的是这两个列表共有的元素集合。例如,如果有两个List,其中一个包含元素A,B,C,另一个包含B,C,D,那么它们的交集就是B,C。理解了这一点,就可以开始探讨如何检测这个交集,以及它对编程实践的意义。Ja......
  • Vue2使用face-api.js实现人脸检测、人脸对比、人流量计数
    1、安装依赖npminstallface-api.js--save我安装的版本2、下载模型文件face-api.js需要一些预先训练好的模型文件来执行人脸检测和识别。需要从GitHub仓库中下载这些文件,并放置在项目的public目录下,或者配置一个正确的路径指向这些文件。可以从face-api.js的GitHub页面......
  • 无人机之多旋翼与固定翼的区别
    多旋翼无人机和固定翼无人机是无人机技术中的两种主要形式,各自有独特的优势和应用场景。一、飞行原理与结构多旋翼无人机:依靠多个旋翼产生升力来平衡飞行器的重力,通过改变每个旋翼的转速控制飞行器的姿态和平稳,使其能够垂直起降、悬停和低速飞行。固定翼无人机:类似于小型飞......
  • 【单片机毕业设计选题24064】-基于阿里云的鱼塘水质检测系统
    系统功能:主控为STM32F103C8T6,通过PH值传感器、浑浊度传感器、温度传感器采集各项水质数据,系统可设定各参数的阈值,超过设定的阈值将通过蜂鸣器响来提醒用户做出措施,同时通过ESP-12FWIFI模块将设备连接阿里云物联网平台,实现在pc与手机端进行远程实时数据实时交互。系统需要......
  • 电瓶车检测AI算法:视频智能分析技术助力电瓶车规范与安全管理
    随着电瓶车(电动自行车)的普及,其在城市交通中扮演着越来越重要的角色。然而,电瓶车的管理、安全监控以及维护等方面也面临着诸多挑战。近年来,人工智能(AI)技术的发展为解决这些问题提供了新的途径。电瓶车检测AI算法能够通过深度学习等技术对电瓶车及其相关行为进行智能识别和分析,为电......
  • 项目方案:视频图像结构化分析技术在车辆和人体检测中的应用方案(视频公共安全领域的解决
    目录一、视频结构化分析技术介绍1、概述2、定义3、核心环节4、应用领域二、视频中车辆和人的结构化1、需求2、信息内容3、功能说明(1)信息智能识别功能(2)智能检索功能(3)数据统计功能(4)布控报警(5)任务管理(6)资源管理(7)系统管理(8)接口管理三、应用实例1、人员参考场景......
  • 嘉立创暑期训练营——温湿度检测仪
    1.引言        本次暑假参加了立创EDA的训练营,在备战电赛的同时完成了训练营的基本内容,在于锻炼自己的能力。 2.原理图和PCB        闲话少续,直接上正片。原理图 PCB 原理图和PCB都可以按照立创EDA的教程。连接我就放在这了:https://www.bili......