【无用之物】鼠标十字星 Mouse Crosshairer

这东西之前老多人做过的,但是我确实没找到来源可信的开源软件,就一个最知名的powertoys但是过于重量级……

ahk肯定是能做,体积碰不巧还比我小,不过我看也没人发,网上也没几个人提过就发上来了(

更新了代码逻辑,增加了配置文件的RGB色值范围校验

大幅减小体积到300kb

1 个赞
  1. 大幅改进了响应速度,同时尽量降低了CPU占用
  2. 换用MSVC工具链
  3. 修复死锁、隐性的内存和指针问题、无效的错误处理
  4. 现在允许单独使用F1-F24作为快捷键,此外新增了一堆奇怪快捷键的支持,例如问号键、backspace键等

觉得功能很好,但是其实目前也是在WPS才用到。

看到快捷键,才发现设定不是长开的功能?下载下来试试。

佬,打开任务管理器的时候鼠标十字会卡住
此外可否增加一些选配功能,比如线型(直线&虚线),以及运行时鼠标形状的切换(方形或者其他形状)

任务管理器是高权限进程,你得用管理员权限运行本程序才能在任务管理器上继续使用

线型会大幅增加cpu(现在<1%到>10%),目前我水平不精,还没太好的办法解决,所以暂时没法加

鼠标形状这个我能改,但是实在想不到应用范围是啥,你干啥需要改鼠标形状啊?

感谢大佬回复,因为我的场景需求是配合pixpin等截图软件截图,加上博主的软件可以快速让对方定位到表格型信息(不需要自己再标注);也有出于部分美观的需求,因为目前的设计往往不能把十字中心放在标注对象的中心,否则会挡住,如果能可选空心矩形或者十字轴中心空白,会方便些。(hhhh,其实痛点比较小众

搞定了。

1.2.0已发布

  1. 修复大量潜在的问题
  2. 增加gap选项
  3. 使用快捷键显示隐藏后自动重载配置,无需重启
  4. 换用Direct2D绘制,降低CPU占用
  5. 大量逻辑改进
1 个赞

此外,你这个需求也可以看看 KeeCastOW,那玩意有个鼠标左键右键高亮的功能,可能对你来讲也有点用?

另,我提了建议,PixPin的作者说下一步会改进它的那个破鼠标动画,现在的那个动画占地方又大,还死慢……

1 个赞

万分感谢佬的回复 :star_struck:

有mac版本么

抱歉,没有。
因为本程序是专门针对Windows优化的,而GUI也都是调的Windows的API,没有办法迁移到Mac

最后,我也没有mac,即便写了也没法测试

1 个赞

大佬,你说的gap选项的说明在哪?如何在ini中使用?
——
嗯,还是求个托盘图标吧,虽然快捷键很方便,但是没托盘图标就太硬核了

gap就是以鼠标为中心间隔的意思

托盘图标目前没有计划加,因为我自己不喜欢。我目前电脑上后台常驻13+软件,我实在不乐意再加一个了

其实还是不明白,而且这选项怎么在设置文件中启用/修改?(能改我也能看出区别)
我开始以为是这个功能:

而且Github上的更新记录也是这样写:

Use four windows to add gap feat. Close #3

是这个功能没错啊,请看视频功能演示,gap就是以鼠标为中心间断显示线段的功能

你只需要把这段放在更新说明或Readme.md里面就好(我旧版已有ini设置文件的话,设置文件中不会自动新出现这个设置段落)

我的错,只改了这里的帖子,readme的忘改了……

因为能力所限,更新软件后还没法做到自动添加新配置,因为我只会写暴力覆盖所有旧配置的(

问deepseek搞了个ahk脚本

在程序文件内创建ahk脚本

#Requires AutoHotkey v1.0
#Persistent
#SingleInstance, Force

; ----- 配置(使用脚本所在目录的相对路径)-----
programPath := A_ScriptDir . "\mouse_crosshair.exe"
configPath := A_ScriptDir . "\crosshair.ini"

; ----- 启动程序(如果未运行)-----
StartProgram() {
    global programPath
    Run, % programPath
    Sleep, 500
}

Process, Exist, mouse_crosshair.exe
if (ErrorLevel = 0)
    StartProgram()

; ----- 辅助函数:发送 Ctrl+Alt+Win+Key -----
SendCtrlAltWin(key) {
    SendInput, {Ctrl down}{Alt down}{LWin down}%key%{Ctrl up}{Alt up}{LWin up}
}

; ----- 重启程序 -----
RestartProgram() {
    SendCtrlAltWin("e")
    Sleep, 500
    StartProgram()
}

; ----- 打开配置文件 -----
OpenConfig() {
    global configPath
    if FileExist(configPath)
        Run, notepad.exe "%configPath%"
    else
        MsgBox, 配置文件不存在:%configPath%
}

; ----- 创建托盘菜单 -----
Menu, Tray, NoStandard
Menu, Tray, Add, 显示/隐藏, ShowHideHandler
Menu, Tray, Add, 重启程序, RestartProgramHandler
Menu, Tray, Add, 打开配置, OpenConfigHandler
Menu, Tray, Add  ; 分隔线
Menu, Tray, Add, 退出脚本, ExitScriptHandler
Menu, Tray, Default, 显示/隐藏
Menu, Tray, Tip, Mouse Crosshair 管理器

return

; ----- 菜单回调 -----
ShowHideHandler:
    SendCtrlAltWin("h")
return

RestartProgramHandler:
    RestartProgram()
return

OpenConfigHandler:
    OpenConfig()
return

ExitScriptHandler:
    SendCtrlAltWin("e")
    Sleep, 300
    ExitApp
return

基本没问题,就是

#Requires AutoHotkey v1.0

DS还在代码中埋坑真让人想不到……
——
或者能让其直接读取ini来获取快捷键设置?