python autohotkey_请问 pyautogui 与 autohotkey 哪个强大一些,用过一段时间的 autohotkey 感觉语法不太舒服,变量很诡异。写过些 autohotkey ...

本文讨论了AutoIt及其衍生的AHK软件在模拟操作和控制外部句柄窗口方面的作用,指出随着DirectUI的流行,这类工具逐渐过时。尽管如此,AutoIt的语言设计被批评为不友好,对比之下,使用Aardio(Auto)进行相同功能的实现更为简洁。文章通过代码示例展示了在AutoIt中调用WINAPI函数的复杂性,突显了其繁琐的语法。
摘要由CSDN通过智能技术生成

4

2015-11-22 19:51:23 +08:00

autoit ,以及基于 autoit 山寨出来的 ahk ,一个最主要的功能就是模拟操作控制外部的句柄窗口十几个函数(这两软件曾经为了这十几个函数的所有权打的不可开交),不过现在 direct ui 流行,基本都是无句柄窗口了,这种模拟按键的软件有些过时了。

说到 autoit 的语言设计,真是不敢恭维,

简单的一个调用 WINAPI 的代码,用 aardio( aauto ) 写只要一句。

var tm = time() //创建 SYSTEMTIME

var filetime = ::FILETIME() //创建 FILETIME

::Kernel32.SystemTimeToFileTime(tm,filetime) //调用 API 函数

改成 autoit 来写吧,比写命令行还麻烦:

------------------------------------------------------------------

$SYSTEMTIME = DllStructCreate("ushort;ushort;ushort;ushort;ushort;ushort;ushort;ushort")

$lpSYSTEMTIME = DllStructGetPtr($SYSTEMTIME)

$LOCALFILETIME=DllStructCreate("dword;dword")

$lpLOCALFILETIME = DllStructGetPtr($LOCALFILETIME)

DllStructSetData($SYSTEMTIME, 1, $Year)

DllStructSetData($SYSTEMTIME, 2, $Month)

DllStructSetData($SYSTEMTIME, 3, _DateToDayOfWeek($Year,$Month,$Day)-1)

DllStructSetData($SYSTEMTIME, 4, $Day)

DllStructSetData($SYSTEMTIME, 5, $Hour)

DllStructSetData($SYSTEMTIME, 6, $Minute)

DllStructSetData($SYSTEMTIME, 7, 0)

DllStructSetData($SYSTEMTIME, 8, 0)

$result = DllCall("kernel32.dll", "long", "SystemTimeToFileTime", "ptr", $lpSystemTime, "ptr", $lpLocalFileTime)

If $result[0] = 0 Then

Local $lastError = DllCall("kernel32.dll", "int", "GetLastError")

SetExtended($lastError[0])

SetError(1)

Return 0

EndIf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值