V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Plumbiu
V2EX  ›  分享创造

用 nodejs 写了一个记录 windows 程序使用时间的命令行工具

  •  2
     
  •   Plumbiu ·
    Plumbiu · 352 天前 · 2352 次点击
    这是一个创建于 352 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本意是想做一个应用程序的,但是只会 electron ,而 electron 打包的程序又太大,因此退而求其次做了一个命令行工具,未来熟悉了 win32api 可以试一下用 rust 重写。

    还有 5 天就要期末考试了,用了 2 天肝完的,所以项目质量可能不是很高,可能有一些小 Bug ,等期末考试结束再重构一遍。

    由于 windows 自启动服务实现有点困难,从网上找了很多教程,发现都需要额外下载 pm2 、forever 之类的,后来发现可以使用 powershell 开机运行 nodejs 脚本,除了刚开机的时候一闪而过的窗口,没有啥大问题

    开源地址: https://github.com/Plumbiu/record-your-life 欢迎 star

    16 条回复    2024-03-16 23:06:47 +08:00
    zyxk
        1
    zyxk  
       352 天前
    问下,获取程序运行时间是怎么实现的, 什么原理
    gouflv
        2
    gouflv  
       352 天前 via iPhone
    两天能有这个代码质量,羡慕现在学生的精力
    Plumbiu
        3
    Plumbiu  
    OP
       352 天前
    @zyxk hmc-win32 提供了可以监听程序切换的 API ,在切换程序的时候,将前一个程序运行时间更新就行,比如有一个程序正在运行,存储的对象是 { duration: 0, time: 某个时间 },在切换程序的时候,他就变成了上一个执行的程序,那么运行时间就是现在的时间减去对象中之前存储的时间
    Plumbiu
        4
    Plumbiu  
    OP
       352 天前
    @gouflv 小问题还挺多的,比如 QQ 就获取不到
    Plumbiu
        5
    Plumbiu  
    OP
       352 天前   ❤️ 1
    @Plumbiu 现在可以了
    FishBear
        6
    FishBear  
       352 天前 via iPhone
    有趣 加星了
    aks
        7
    aks  
       352 天前
    可以做成在菜单栏加个图标,右键直接查看使用时间吗
    Plumbiu
        8
    Plumbiu  
    OP
       352 天前
    @aks 好建议,期末考完就做这个
    yushiro
        9
    yushiro  
       352 天前 via iPhone
    都已经安装 nodejs 了,再装个 pm2 也没啥门槛了吧。
    cat
        10
    cat  
       352 天前
    建议做成 Windows 服务
    Plumbiu
        11
    Plumbiu  
    OP
       352 天前
    @yushiro windows 重启之后 pm2 服务就停掉了,自启动的话还要写 bat 脚本
    Plumbiu
        12
    Plumbiu  
    OP
       352 天前
    @cat 最开始也是做成服务的,但是 node-windows 那个库不是很稳定,js 里的计时器好像没法运行
    yushiro
        13
    yushiro  
       349 天前 via iPhone
    @Plumbiu 不需要吧,pm2 可以安装成随系统自启动的
    Plumbiu
        14
    Plumbiu  
    OP
       349 天前
    @yushiro 我搜到的都是要额外安装别的包....不过现在倒是直接可以执行命令行创建计划任务了
    kiic
        15
    kiic  
       286 天前
    我这个软件应该可能大概能帮上你 https://cos.kiic.top/165216541/pot_cc_start.zip
    user_data.json 里面可以配置是否在 ctrl+c+c 时候响应 pot 翻译工具
    他还带着一些有趣的配置:
    启动的程序路径:path
    是否拥有管理员权限 :admin
    延迟启动毫秒数 :time
    是否隐藏窗口:hide
    cwd:工作路径
    cmd: 启动时候输入的命令行
    Plumbiu
        16
    Plumbiu  
    OP
       285 天前
    @kiic 已经用 windows 计划任务实现了,不过还是感谢分享
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5384 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:03 · PVG 15:03 · LAX 23:03 · JFK 02:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.