网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月03日漏签0天
autohotkey吧 关注:4,697贴子:16,214
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 44回复贴,共2页
  • ,跳到 页  
<<返回autohotkey吧
>0< 加载中...

autohotkey 调用 aardio ,制作漂亮界面

  • 只看楼主
  • 收藏

  • 回复
  • JacenHe
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

aardio 提供 ahk 扩展库,
可以在 aardio 里调用 ahk代码,也可以在 ahk里调用 aardio代码。
来个例子:
import win.ui;
/*DSG{{*/
var winform = win.form(text="嵌入autohotkey演示";right=599;bottom=399)
winform.add(
edit={cls="edit";left=17;top=18;right=565;bottom=374;edge=1;multiline=1;z=1}
)
/*}}*/
import ahk;
//直接定义允许AHK调用的aardio函数(函数名以on开头)
ahk.onTest = function(param){
winform.edit.print( "winform.onTest被ahk调用",param )
}
//运行ahk代码
ahk.run( `
#Persistent ;保持ahk线程不退出
#NoTrayIcon ;不显示托盘图标
#include <aardio> ;启动ahk代码中必须加入这句才能与aardio交互
global gVar := ""
GetCursorPos(hwnd){
POINT_STRUCT =
(
UInt x;
UInt y;
)
point := Struct( POINT_STRUCT )
DllCall("user32.dll\GetCursorPos", "Ptr", point[])
; 直接调用aardio函数,支持任意类型、不定个数的调用参数
aardio.onTest({ x : POINT.x, y : POINT.y })
return { x : POINT.x, y : POINT.y }
}`);
//直接修改ahk全局变量的值
ahk.setGlobal("gVar","测试一下")
/*
直接调用ahk里定义的全局函数,
参数和返回值自动支持各种数据类型,就像调用普通aardio函数。
是不是很神奇?!
*/
var point = ahk.GetCursorPos(ahk.external.hwnd);
winform.edit.print("调用ahk函数的返回值:",point);
// 当然上面的代码用aardio直接写会更简单,例如:
var point = {int x;int y};
::User32.GetCursorPos(point)
winform.show()
win.loopMessage();


  • JacenHe
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
控制正在运行的ahk脚本暂停或恢复


import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="嵌入autohotkey演示";right=599;bottom=399)
winform.add(
button={cls="plus";text="暂停AHK";left=44;top=11;right=134;bottom=41;bgcolor=-6960024;font=LOGFONT(name='FontAwesome';charset=0);z=2};
edit={cls="edit";left=17;top=56;right=565;bottom=374;edge=1;multiline=1;z=1}
)
/*}}*/
import ahk;
var handle = ahk.run( `
#Persistent ;保持ahk线程不退出
#NoTrayIcon ;不显示托盘图标
#include <aardio> ;启动ahk代码中必须加入这句才能与aardio交互
::hj::run无乱码
`);
winform.button.onMouseClick = function(){
if(winform.button.text=="暂停AHK"){
thread.suspend(handle)
winform.button.text = "继续AHK"
}
else {
thread.resume(handle)
winform.button.text = "暂停AHK"
}
}
winform.button.skin({
color={
active=0xFFFFFFFF;
default=0xFF000000;
hover=0xFFFFFFFF
};
})
winform.show()
win.loopMessage();


2025-07-03 11:25:58
广告
  • JacenHe
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
aardio提供可视化的设计器,拖拉就可以做出漂亮界面。
可以与 autohotkey 混合编程,可以相互调用对方的代码。


  • JacenHe
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
开源的DLL查看工具,可以查看DLL文件的导出表、导入表,兼容32位/64位执行文件


  • JacenHe
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
写一个漂亮的计时器,提供源码


  • JacenHe
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
aardio 不仅可以调用autohotkey,也可以嵌入非常多的第三方语言,而且这些扩展库都是开源的,例如调用 PHP的 php.simpleHttpServer 就只有 3句代码。


  • JacenHe
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
只要添加一句代码,就可以为自己的软件加上完整的自动更新功能。


  • wyybeyond
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼主,更新一下aardio吧,扩展库里面都是空的了


2025-07-03 11:19:58
广告
  • JacenHe
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
aardio 实现的开源软件 wubiLex,体积只有810KB

wubiLex里的超级热键有点像autohotkey里的热字串:


  • JacenHe
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
aardio 制作界面非常方便,可以嵌入 ahk脚本,遇到使用问题可以在这里留言。


  • 肌肉的野望
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你好,我想请问一下如何实现在aardio实现重载脚本功能。你的范例是用了thread的暂停跟启动,我想问的是脚本重载?试了用AHK 脚本定义Reload,再外部模拟热键模拟按下,行不通。(单独测试脚本是OK的 )
像以下写入脚本OK
f7::
Reload,Toggle
return
按下F7脚本重载
单独执行此脚本OK
但是放到aardio,的AHK.run里面,然后外部模拟按下F7,程序就出错。
如果直接在aardio里用ahk.reload(),也是程序崩溃。
谢谢!


  • 肌肉的野望
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一鹤大神麻烦私信一下,有问题求助,私信不了你。。。。谢谢!


  • 橘猫小彭友
  • 富有名气
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在ahk编辑器怎么调用aardio


  • JacenHe
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这里说明一下为什么ahk代码放到反引号里,`n 就会出错了。
aardio 的字符串可以包含在双引号、单引号,或者反引号里都是可以的。在aardio 里下面的写法都是可以的:
//运行ahk代码
ahk.run( `ahk代码`);
ahk.run( "ahk代码");
ahk.run( "ahk代码");
如果你的代码本身包含引号,
双引号和反引号重复两次就可以表示一个原始引号了。
至于单引号里要转转义符,例如 ' \' '
aardio 还可以把字符串放到段注释里,例如下面的aardio代码:
var code = /***
ahk代码
***/
ahk.run( code );
这时候任何字符都可以放进去,不用做任何处理。
但是要注意这种写法,注释首尾的星号数目要匹配(也就是开始标记里有3个星号,那结尾就一定也要是3个星号)。


2025-07-03 11:13:58
广告
  • JacenHe
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
支持屏幕图像文字识别并自动点击了


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 44回复贴,共2页
  • ,跳到 页  
<<返回autohotkey吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示