Ayase - 用键盘代替鼠标的小工具 (直接获取 UI Tree)

2021-08-11 10:38:40 +08:00
 JeffersonQin

Ayase

项目 repo:Github/Ayase@JeffersonQin

截图在 Github 上有( V2 不让我发链接(悲

Ayase 是一款旨在使用键盘对电脑进行控制的软件。其专门为<del>像我这样的懒人</del>打造。众所周知,在普通情况下,我们需要同时使用键盘鼠标对电脑进行控制,然而频繁的键盘与鼠标间的切换回让人身心俱疲,同时使得手腕关节持续疲劳,有害于人的身体健康。Ayase 可以通过搜索的方式精确定位屏幕上的 UI 元素,快速控制。

Features

关于 Accessibility 方面的开发以及速度优化的讨论,可以看我博客的几篇文章 (gyrojeff(dot)top)。最终我采用的实现方案是C++调用Win32API / uiautomation.h编译成dll动态链接库,在C# / WPF项目中通过P/Invoke进行调用。在大多数情况下,速度同比提升将近 80%.

这是我第一次正儿八经地写WPF / C++,所以如果有什么问题还请大家多提PR / Issues

Dependencies

使用方法

TODO

3470 次点击
所在节点    分享创造
42 条回复
JeffersonQin
2021-08-11 11:09:12 +08:00
Namoe
2021-08-11 12:11:41 +08:00
请问有 release 版本吗,build 有点折磨
PainAndLove
2021-08-11 13:15:38 +08:00
mac 能用吗
internelp
2021-08-11 13:46:23 +08:00
🐂
JeffersonQin
2021-08-11 14:27:04 +08:00
@Namoe 我马上去 github 上发个 release,稍等(都忘了这茬了🤣
JeffersonQin
2021-08-11 14:28:08 +08:00
@PainAndLove 不能 这个是用 win32api 实现的主要功能,不过 mac 也有相应的 accessibility 接口,可以了解一下 applescript ( osascript )以及 Inspector 工具。我现在不用 mac 了,以前用了很多年,玩过这方面的东西。
gauzung
2021-08-11 14:43:01 +08:00
一直在用浏览器端的 vimium,也想着有没有浏览器以外也有类似的软件,终于看到了
我感觉 vimium 这种点击交互效率更高,不知道楼主有没有考虑过
JeffersonQin
2021-08-11 14:48:00 +08:00
@gauzung 这个工具当初我想到做这个东西的时候其实朋友安利过我。但是我最终考虑下来觉得他还是不够“intuitive”,现在的话是“看到什么就搜什么”,个人认为更加符合直觉。而且如果我用这种模式,大多数情况下我其实只需要加上 alt 键就可以了。不过我觉得这个模式以后可能也可以加入(说实话感觉也挺有意思的
gauzung
2021-08-11 14:52:38 +08:00
@JeffersonQin #8 多谢,关注中
mmmao
2021-08-11 15:00:38 +08:00
感觉挺方便的
AoEiuV020
2021-08-11 15:37:29 +08:00
主要问题还是使用场景,日常使用的话,没谁日常使用没有鼠标吧,而有鼠标的情况这种软件有没什么场合能比鼠标更方便,没有的话感觉就很鸡肋了,体验一下就没有然后了,
yuancoder
2021-08-11 15:38:44 +08:00
费手指
JeffersonQin
2021-08-11 15:47:26 +08:00
@AoEiuV020 嘛 还是个人喜好问题吧(
jorneyr
2021-08-11 17:06:21 +08:00
对 DirectUi 的界面支持怎么样?
JeffersonQin
2021-08-11 17:13:25 +08:00
@jorneyr 可以给个例子嘛(我去测试下
jorneyr
2021-08-11 18:18:34 +08:00
@JeffersonQin 好像迅雷,VS Studio 都是,或者 WPF 之类开发的界面程序。
qq316107934
2021-08-11 18:23:42 +08:00
大概无障碍服务使用者的福音。
好奇是咋拿到 Electron 和 WPF 开发的 UI Tree 的,只知道传统的 Win32 控件绘制可以靠遍历子句柄,但是我前面提到的那俩是自己做的渲染,只能拿到一整个 Webkit 或者 Window 句柄。
pabupa
2021-08-11 18:30:04 +08:00
帅!!!!!!!!!!
JeffersonQin
2021-08-11 18:31:46 +08:00
@jorneyr 我测试了一下:迅雷, Visual Studio, Visual Studio Code, VMWare Workstation, QQ, 微信, Adobe Acrobat, 任务管理器 这几个都是可以的
JeffersonQin
2021-08-11 18:39:02 +08:00
可以搜一下 uiautomation . h , 我是用这个 api 做的除此之外还可以考虑 MSAA,不过我测试下来这个效果会差很多速度也慢很多,而且本身要也要比 uiautomation 老很多了。我博客上有具体的记录:gyrojeff 点 top (置顶的几篇文章后面的十几篇就是

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/795014

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX