按键精灵类软件有没有替代品或者更好的选择?
最近工作上来了很多机械性重复劳动,搞了几行就开始思考能不能自动化一下以前用过按键精灵,做过相关脚本,但都是通过坐标来执行的,容错低,无人值守不可能放心
按键精灵本身有识图甚至识别窗口、函数等功能,但是粗用了一下不是说非常智能方便,比如读取已打开excel的功能,就没有实现成功
但是按键精灵本身功能粗看一下还真的挺强大的,里面打开软件、处理数据库等功能如果好好研究一下,应该能给工作带来很大便利
excel用vba呀 hein 发表于 2018-11-2 10:34
excel用vba呀
除了excel,还需要操作另一个软件系统 没用过按键精灵,不过你说的功能autohotkey都有。 本帖最后由 dodolee 于 2018-11-2 13:43 编辑
Mac 的话有 AppleScripts,Windows 似乎只能 AutoIt 或者 AutoHotKey 我给公司内网软件操作也是弄按键精灵。
这些软件开发的都很烂,很多人性化功能没有,的一个一个点确认...
业务多了几百个要点,工作人员要罢工...
也在找有没有简单点的,按键精灵广告太多了,老机器跑这些还卡的不行... aotohotkey有什么问题么……我觉得很好用啊。
尤其上面说老机器的,ahk可以发送一个单独的exe文件,不需要安装其他的东西。 按键精灵这么长时间的生态系统的确是一笔很大的资源啊,了解到一个衍生的{懒人系列}插件, 研究一下 写过两年按键,个人感觉随便用用还行,想要更好的体验,就只能用编程语言替代了,其他工具都没按键简单粗暴
—— 来自 360 1809-A01, Android 8.1.0上的 S1Next-鹅版 v2.0.4 大漠
付费的 不过好像是有破解版
-- 来自 能看大图的 Stage1官方 iOS客户端 longxiao7 发表于 2018-11-2 14:31
写过两年按键,个人感觉随便用用还行,想要更好的体验,就只能用编程语言替代了,其他工具都没按键简单粗暴 ...
用于这种操作的编程语言是指哪一类的?有木有关键字了解一下 LZ可以说找到梦寐以求的软件了,autoit3
稍微试了几个demo感觉符合之前自己的要求,通过相关接口加上键盘和相对坐标模拟,还能取得剪贴板内容并且对内容加以判断,可以说十分灵活可行了
然后就是请问诸位坛友有木有比较系统的入门教程,或者有木有大佬愿意献身指点迷津本人愿意有偿学习~ spikedingo 发表于 2018-11-2 22:03
LZ可以说找到梦寐以求的软件了,autoit3
稍微试了几个demo感觉符合之前自己的要求,通过相关接口加上键盘 ...
aotoit3有两个论坛,在知乎可以搜到。
好像这个的教程不如autohotkey多。
—— 来自 HUAWEI KNT-AL10, Android 8.0.0上的 S1Next-鹅版 v2.0.4 佳丽三千到 发表于 2018-11-2 22:16
aotoit3有两个论坛,在知乎可以搜到。
好像这个的教程不如autohotkey多。
不过也许这两软件功能有些重合也有可能 spikedingo 发表于 2018-11-2 23:39
不过也许这两软件功能有些重合也有可能
不是有可能,确实是很多重合的地方。
—— 来自 HUAWEI KNT-AL10, Android 8.0.0上的 S1Next-鹅版 v2.0.4 看到这帖子第一反应是pywin32,只要有开发能力&不介意重新造轮子的话 spikedingo 发表于 2018-11-2 22:03
LZ可以说找到梦寐以求的软件了,autoit3
稍微试了几个demo感觉符合之前自己的要求,通过相关接口加上键盘 ...
au的中文说明和那本论坛智慧合集已经很棒棒了啊,还要什么自行车 本帖最后由 spikedingo 于 2018-11-6 08:37 编辑
#RequireAdmin
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_icon=C:\WINDOWS\System32\SHELL32.dll|-145
#PRE_UseX64=n
#PRE_Res_requestedExecutionLevel=None
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <Excel.au3>
#include <Constants.au3>
Opt('MouseCoordMode', 2)
AutoItSetOption("SendKeyDelay", 100)
; 链接到已打开的excel工作表
Local $excel = _ExcelBookAttach("444.xlsx" ,"FileName")
; 弹框请求起始循环的行数
$i = InputBox("准备", "请输入起始行数")
; Dim $i = 102
; While语句,当病历号栏有值时,就继续操作,否则退出循环
While _ExcelReadCell($excel,"b"&$i) <> ""
; If语句,读取到完成状态栏(E)数值非1时,继续操作,1代表已完成,可以跳过
if_ExcelReadCell($excel,"e"&$i) <> 1 Then
; 读取病历号
Local $pNum = _ExcelReadCell($excel,"b"&$i)
; 保存病人姓名以做容错判断
Local $pName = _ExcelReadCell($excel,"c"&$i)
; 保存病人应该充值的金额
Local $pMoney = _ExcelReadCell($excel,"a"&$i)
; 将病历号存入剪切板
; 开始卫宁软件部分操作
; 获取充值卡操作窗口并等待激活至活动窗口
Local $handle = WinGetHandle("")
WinActivate($handle)
WinWaitActive($handle)
; 首先确定切换到充值用户列表
Sleep(100)
MouseClick("left", 76, 12, 2, 5)
; 聚焦病历号窗口
; 判断病历号输入框内病历号是否正确,否则一直执行输入程序
ControlFocus($handle,"","TEdit1")
While ControlGetText($handle,"","TEdit1") <> $pNum
AutoItSetOption("SendKeyDelay", 100)
MouseClick("left", 76, 12, 2, 5)
ControlFocus($handle,"","TEdit1")
; 确保内容已清空
;
; 粘贴病历号
Send($pNum)
; 按回车确定
Local $text = ControlGetText($handle,"","TEdit1")
WEnd
Send("{ENTER}")
; 点击保存
ControlClick($handle, "", "TBitBtn10")
; 等待
Sleep(200)
; 获取弹出的提示窗口,等待其活动后点击确定按钮
Local $Notice = WinWaitActive("")
ControlClick($Notice, "", "Button1")
Sleep(200)
; 获取卡号供后面粘贴用
Local $CardNum = ControlGetText($handle,"","TEdit9")
;双击病人信息,至充值界面
WinActivate($handle)
WinWaitActive($handle)
MouseClick("left", 179, 57, 2, 5)
; 获取充值金额窗口
Sleep(200)
; 在充值前检查是否正确
Local $info = WinGetText($handle)
Local $correct = StringInStr($info,$pName)
if $correct <> 0 Then
; 让金额输入窗口聚焦
ControlFocus($handle,"","TEdit6")
; 输入充值金额
Send($pMoney)
Sleep(200)
; 点击六次回车,完成充值
Send("{ENTER}{ENTER}{ENTER}{ENTER}{ENTER}{ENTER}")
;end winning
Sleep(200)
; 充值后,保存之前留存的卡号,并在E栏打上1
_ExcelWriteCell($excel, $CardNum, "d"&$i)
_ExcelWriteCell($excel, 1, "e"&$i)
Endif
Else
_ExcelWriteCell($excel, "Done!", "f"&$i)
Endif
$i += 1
WEnd
后续:LZ成功了,解决了整个科室分摊的1W条信息录入问题尝到了甜头
本帖最后由 spikedingo 于 2018-11-6 08:44 编辑
踩了几个坑,1.office安装不完善可能导致无法读取excel内容,后重装office后解决
2.部分需要管理员权限的软件,普通模式无法自动化操作,必须在au3脚本里加上#RequireAdmin,取得管理员权限才可控制对应软件
3.当你的au3脚本取得管理员权限后,就无法再读取普通权限打开的excel文件,这时要把excel文件也使用管理员权限打开
之后就一路绿灯,几乎没啥调试搞出了成品
spikedingo 发表于 2018-11-2 22:03
LZ可以说找到梦寐以求的软件了,autoit3
稍微试了几个demo感觉符合之前自己的要求,通过相关接口加上键盘 ...
这个软件确实还算好用
不过对于非标准win控件貌似不太给力
我这也是初学者,弄个简单的软件自动安装停止服务复制破解开启服务发送快捷方式,这些还凑合
高级功能暂时不会,毕竟不是专业码农- - 史莱姆KING 发表于 2018-11-6 11:47
这个软件确实还算好用
不过对于非标准win控件貌似不太给力
非标准控件用相对位置的点击,还算准确,但是可能就不方便去获取一些具体状态,进而保证整个过程的精确性了 会python的话强推sikuli,之前用它写过手游刷刷刷脚本
—— 来自 SAMSUNG GT-N7100, Android 4.0.4上的 S1Next-鹅版 v2.0.4 spikedingo 发表于 2018-11-6 13:41
非标准控件用相对位置的点击,还算准确,但是可能就不方便去获取一些具体状态,进而保证整个过程的精确性 ...
这个我测试过,也不太行
主要是一部分机器的配置,分辨率不同,未必都管用
嘛,这个我有空慢慢研究吧,非码农表示难度较高233333 weakiwi 发表于 2018-11-6 14:12
会python的话强推sikuli,之前用它写过手游刷刷刷脚本
—— 来自 SAMSUNG GT-N7100, Android 4.0.4上的 S1 ...
看了一眼,喷了,不追求速度可能准确性和易用性很棒?没用过瞎猜的 史莱姆KING 发表于 2018-11-6 14:15
这个我测试过,也不太行
主要是一部分机器的配置,分辨率不同,未必都管用
可能不同软件不一样,我上面那个案例在不同分辨率下面效果是一样的 spikedingo 发表于 2018-11-6 15:10
看了一眼,喷了,不追求速度可能准确性和易用性很棒?没用过瞎猜的 ...
的确是这样的。
我就是靠图像硬撸,但是如果突然弹个窗把软件挡住了啥的就有些蛋疼。。。
主要是逻辑直接就和人操作的差不多,先用眼睛看,点看到的地方。出现什么图像就停止。。。
—— 来自 SAMSUNG GT-N7100, Android 4.0.4上的 S1Next-鹅版 v2.0.4 script字里行间满是识别图像,笑抽了
不知道能不能在指定窗口里识别,说起来不是前台的窗口被遮住的部分还会被渲染吗
页:
[1]