跳转至内容
  • 社区公告

    1 1
    1 主题
    1 帖子
    A
    为维护清朗网络空间,保障社区健康有序,依据《中华人民共和国网络安全法》《互联网信息服务管理办法》《网络信息内容生态治理规定》等法律法规,本社区严禁发布以下内容: 一、涉黄低俗 色情、淫秽、低俗、性暗示信息,以及任何涉及未成年人的不良内容。 二、危害国家安全 反对宪法确定的基本原则;危害国家安全、荣誉和利益;煽动颠覆国家政权、分裂国家、破坏民族团结;泄露国家秘密。 三、暴力恐怖 宣扬恐怖主义、极端主义;煽动民族仇恨、宗教极端与暴力行为。 四、违法犯罪 赌博、毒品、枪支弹药、管制刀具、危险化学品等违禁品的传播与交易;传授犯罪方法。 五、谣言与虚假信息 编造、传播虚假信息,扰乱社会秩序或社区秩序。 六、侵权与欺诈 造谣诽谤、侵犯他人隐私与名誉;诈骗、传销、非法集资。 七、违规广告导流 未经许可的商业广告、拉群导流、刷单返利、外链推广。 八、人身攻击 辱骂、歧视、骚扰、恶意引战。 处理办法 违反以上规定的,视情节轻重给予删帖、警告、禁言、封禁账号等处理;涉嫌违法犯罪的,依法向有关部门报告并移送司法机关。 本规范自发布之日起施行。
  • 莫谈国事

    1 1
    1 主题
    1 帖子
    没有新主题
  • 欢迎随时提问

    0 0
    0 主题
    0 帖子
    没有新主题
  • 0 主题
    0 帖子
    没有新主题
  • 2 主题
    2 帖子
    A
    这篇说明 5.20 版本新增的内置函数 GetUpTime():宏脚本里第一个「读时间」的接口。 它没有参数,返回设备开机以来经过的毫秒数,用来计量耗时、给动作做绝对时间对齐。 相关: 键鼠助手 5.0 资源汇总:主程序 / 文档 / 配套工具下载 一句话用法 local t = GetUpTime() -- 单位毫秒,整型;返回值一般只用来算差值 接口说明 函数 参数 返回值 说明 GetUpTime() 无 整型 设备开机以来经过的毫秒数 几点需要说清楚: 不是「当前时间」:它是「开机以来的时长」,设备上电时从 0 开始,不表示几点几分,也不是时间戳。它的用途是算差值。 单位是毫秒,返回值是整型:脚本里 math.type(GetUpTime()) 得到 integer,可以直接参与加减乘除与比较。 分辨率 1 毫秒:设备内部按更细的步长计数,换算成毫秒时向下取整,所以相邻两次调用可能返回同一个值。 不会溢出:毫秒计数是 64 位整数,连续开机到溢出需要以「亿年」计,正常使用无需关心。 大小写不敏感:GetUpTime() 与 getuptime() 是同一个函数,和 IsKeyDown / iskeydown 的规则一致。 它是「读时钟」,不是「等待」:调用本身几乎不耗时、不会阻塞宏;要等一段时间请用 Delay(毫秒)。 在电脑上先调好再上机:两种环境的时间原点不同 同一个 GetUpTime(),在两个地方跑,时间原点不一样: 运行环境 时间原点 典型用途 编辑器 →「脚本校验」 本次校验开始的时刻 在电脑上先确认脚本的节奏与耗时 设备(真机) 设备本次上电的时刻 真实的宏执行计时 所以不要跨环境比较绝对数值(电脑上的 1200 和真机上的 1200 不是一个起点),只比较同一个环境内的差值。 用法一:测量一段宏的耗时 取两次时间戳相减,就能知道中间这段动作真实花了多久 —— 排查「宏为什么比预期慢」时很有用。 local t0 = GetUpTime() KeyTap("a") Delay(300) KeyTap("b") Log("这一段耗时 %d ms", GetUpTime() - t0) Log 的首个参数带 %d 时按 printf 格式化,数字会原样打印出来,便于对照。 用法二:用绝对时间对齐,避免 Delay 累积误差 连续多次 Delay(500) 时,每一步自身的执行耗时会让整体越走越慢,误差逐次累加。 改用「目标时刻」判断,就能把每轮的落点重新拉回时间轴上: -- 执行 4 轮,每轮之间间隔 500ms,落点分别对齐到 500 / 1000 / 1500 / 2000ms local t0 = GetUpTime() for i = 1, 4 do KeyTap("f") local target = i * 500 while GetUpTime() - t0 < target do Delay(10) -- 小步让出,别用空转等待 end end 要点:等待循环里一定要有 Delay(小值),不要把 while 写成不带 Delay 的紧凑空转。 用法三:把宏做成固定的节拍 需要「每 1 秒做一件事、共 5 次」这类节奏时,用时间戳做判断比用 Delay 堆叠更稳: local last = GetUpTime() local count = 0 while count < 5 do local now = GetUpTime() if now - last >= 1000 then last = last + 1000 -- 以理论落点累加,不丢节拍 KeyTap("space") count = count + 1 end Delay(10) end last = last + 1000(而不是 last = now)能让误差不累积:即使某轮判定晚了一点,下一轮的落点仍然回到原来的时间轴上。 版本要求与兼容性 组合 结果 5.20 软件 + 配套固件 正常使用 5.20 之前的软件 编译不通过:GetUpTime 会被当成未定义的函数 5.20 软件 + 更早的固件 宏在设备上执行到该函数时会失败中断(不会静默返回 0) 所以升级软件时,请把固件一并升到配套版本。软件与固件的版本对应关系,参考资源汇总帖里的说明。 还是有问题? 在本帖下回复,写清楚:软件版本(关于页的 Software version)+ 固件版本 + 你脚本里调用 GetUpTime() 的那几行 + 现象。
  • 2 主题
    2 帖子
    A
    这篇是给刚拿到键鼠助手 4.0 的朋友准备的:第一次打开软件报缺 DLL、文档和视频去哪找、 读不出固件信息、硬件宏保存失败 —— 这几类情况基本都能在下面找到答案。装机前建议先扫一遍。 相关: 键鼠助手 4.0 资源汇总:主程序 / 宏编程文档 / SDK 与示例工程 / 常用工具下载 使用需知 首次打开提示「找不到 CH375DLL64.DLL」 第一次打开软件时,如果弹出“由于找不到CH375DLL64.DLL,无法继续执行代码。重新安装程序可能会解决”,请安装软件包中的程序 CH372_DRIVER.exe CH375DLL64.DLL 是沁恒 CH372 / CH375 系列 USB 芯片的动态库,缺它就说明驱动还没装,不是软件损坏,也不用重装主程序。 处理方式:运行 CH372_DRIVER.exe(以管理员身份)完成驱动安装,再重新打开主程序即可。 下载:CH372_DRIVER.exe(346 KiB,资源汇总帖里的「驱动程序」一项)。 这是个沁恒 CH372 / CH375 的驱动安装包:内含 CH375DLL.dll / CH375DLL64.dll 两个动态库与 CH375WDM 系列驱动文件,装完建议重启一次再打开主程序。 先查《键鼠助手--使用指南.chm》 《键鼠助手--使用指南.chm》(4.0的使用基本一样),有问题可以先查找一下,常见问题都可以找到答案,LUA相关接口使用请查看键鼠助手4系列视频教程。 遇到功能上的疑问,先翻这本 chm,绝大多数常见问题里面都有;它是按 3.0 系列写的,但 4.0 的用法基本一致,可以直接对照。 Lua 接口部分不在这本 chm 里,去看「键鼠助手 4 系列视频教程」。 本版块下载帖目前提供的是《键鼠助手软件宏编程文档.pdf》(Lua 函数说明,18 页),chm 尚未上传;需要的话可以补上来。 新手开箱视频 新手开箱视频:【键鼠助手4.0--新手使用指南及特性概要-哔哩哔哩】 https://bilibili.com/video/BV1CKqSYkEeo/ 直达链接:键鼠助手4.0--新手使用指南及特性概要(B 站,BV1CKqSYkEeo) 还没拆封的话,建议先跟着这一集过一遍流程,再回来动手。 读不出固件信息时,别强行追新版本 当使用最新软件无法查看固件信息时,请使用与固件配套的软件版本进行固件升级,升级完后请使用与固件配套的软件。 软件版本与固件版本之间有配套关系,不是越新越好 —— 新软件读不出老固件的固件信息属于版本不匹配,而非硬件故障。 正确顺序:换成与该固件配套的软件版本 → 升级固件 → 升级完继续用这一配套版本的软件,不要再跳到最新版。 硬件宏无法保存 无法保存硬件宏时,把程序文件夹放桌面,然后使用管理员权限运行程序 把整个程序文件夹挪到桌面(或任何普通用户有写权限的位置),再右键主程序选「以管理员身份运行」,然后重试保存。 常见诱因是程序放在受保护目录、C:\Program Files 下被 UAC 拦写,或软件本身没被授予写入权限。 无线版本接收器固件已开源 无线版本键鼠助手接收器开源地址:https://github.com/magicsunflower/kma_receiver.git 仓库地址:https://github.com/magicsunflower/kma_receiver.git 如果你用的是无线版,接收器部分的固件源码在这里,可自行查阅与编译。 需要 ssh 以外的协作方式(提交 Issue / PR)也走这个仓库。 还是没解决? 先确认用的软件版本与固件是否配套(见上面「读不出固件信息」那条); 再确认是否以管理员身份运行、程序目录是否有写权限(见「硬件宏无法保存」那条); 仍不行的话在本帖下回复,说明软件版本 + 固件版本 + 系统版本 + 具体报错,方便定位。
  • 博主的博文

    0 0
    0 主题
    0 帖子
    没有新主题