V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sandman511
V2EX  ›  程序员

如何记录用户的退出时间

  •  
  •   sandman511 · 2020-02-11 10:50:28 +08:00 · 2158 次点击
    这是一个创建于 1529 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用 java 写了一个小功能
    跑在 cmd 黑窗口里,当用户点黑窗口的叉叉时,我想记录此刻的时间,请问有什么方法可以做到吗?
    谢谢!

    7 条回复    2020-02-12 08:40:09 +08:00
    Vhc001
        1
    Vhc001  
       2020-02-11 11:02:43 +08:00
    启动时把启动时间写入文件,每间隔几秒把运行时长写入文件
    azcvcza
        2
    azcvcza  
       2020-02-11 11:10:09 +08:00
    监听窗口关闭事件,或者程序结束事件?
    imn1
        3
    imn1  
       2020-02-11 11:18:33 +08:00
    再开一个监听进程
    Maboroshii
        4
    Maboroshii  
       2020-02-11 11:37:15 +08:00
    心跳
    nightwitch
        6
    nightwitch  
       2020-02-11 22:02:21 +08:00
    在 windows 下你需要响应 WM_CLOSE 事件,对应在 Linux 是 SIGTERM 信号.
    matepi
        7
    matepi  
       2020-02-12 08:40:09 +08:00
    我记得叉直接关、ctrl+c 终止分别是不同信号来的
    尤其在 windows 下,叉直接关、包括关机 /系统签退 /重启,貌似是 addShutdownHook 抓不到的
    需要自己扩展 jni,有人造过轮子,我用过,一时想不起来,回头找找

    找到了
    https://stackoverflow.com/questions/9277630/windows-shutdown-hook-on-java-application-run-from-a-bat-script/21472016
    用的这个第二个回答里面提到的 axet 的轮子,实现过,没问题
    用来关掉主 java 进程启动的外部命令,挺好用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5507 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 03:23 · PVG 11:23 · LAX 20:23 · JFK 23:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.