aardio调用dll

刚知道aardio这个不错的玩具,可惜作者停更了,贴一个调用dll的例子备用吧

 

vc代码

extern "C" _declspec(dllexport) int _stdcall my_export(int a,int b)
{
    return a + b;
}

 

def文件

LIBRARY      "my_dll"

EXPORTS
    my_export

 

aardio代码

mainForm.button.oncommand = function(id,event){
    //后面默认是stdcall调用,写错会各种崩溃
    dll  = raw.loadDll("D:\projects\vc\my_dll\Debug\my_dll.dll");
/*
    MyExportFunc = dll.api("my_export","int(int, int)");
    result = MyExportFunc(1, 2);
*/
    //函数可以直接调用
    result = dll.my_export(1,2)
    win.msgbox(tostring(result))
}

 

转载于:https://www.cnblogs.com/ziyouchutuwenwu/p/11199038.html

<think>我们参考用户提供的历史信息:用户提到了引用[1]是关于文心一言4.0的申请和调用示例,但这并非当前需求。用户当前需求是在aardio调用AutoItX3库。因此,我们将忽略引用[1]的内容,专注于用户的问题:如何在aardio调用AutoItX3。注意:aardio支持多种方式调用COM组件,而AutoItX3通常以COM组件的形式提供功能。因此,我们可以在aardio中创建AutoItX3的COM对象,然后调用其方法。步骤:1.确保系统已经安装了AutoItX3(通常需要注册DLL,比如执行regsvr32AutoItX3.dll)。2.在aardio中通过com.CreateObject创建AutoItX3对象。3.调用AutoItX3提供的方法,如ControlClick,Send等。示例代码(请确保已正确安装AutoItX3):```importconsole;importcom;//创建AutoIt对象varautoIt=com.CreateObject("AutoItX3.Control");//示例:发送按键autoIt.Send("Hello,AutoIt!");//示例:等待活动窗口autoIt.WinWaitActive("无标题-记事本");//示例:在记事本中输入autoIt.Send("Hellofromaardio!");console.log("操作完成");console.pause(true);```注意:-由于AutoItX3的COM对象名称可能因版本而异,如果上述名称无法创建,可以尝试"AutoItX3.Control.1"或其他版本。-确保以管理员权限运行aardio(如果需要),因为某些AutoIt操作可能需要权限。-如果创建COM对象失败,请检查AutoItX3是否正确安装并注册。相关问题:1.aardio中如何调用COM组件?2.如何注册AutoItX3.dll?3.AutoItX3常用的方法有哪些?以上代码仅作示例,实际使用时需要根据具体需求调整。</think> 在 aardio调用 AutoItX3 库需要通过 COM(组件对象模型)接口实现,以下是具体步骤和示例代码: ### 调用步骤 1. **安装 AutoItX3** - 下载并安装 [AutoIt](https://www.autoitscript.com/) 最新版 - 确保 `AutoItX3.dll` 已注册到系统(通常安装时自动注册) 2. **aardio 中的 COM 调用语法** ```aardio // 创建 COM 对象 var autoIt = com.CreateObject("AutoItX3.Control") // 调用 AutoIt 方法 autoIt.MethodName(参数) ``` ### 示例代码 ```aardio import console; // 创建 AutoIt COM 对象 var autoIt = com.CreateObject("AutoItX3.Control") if(autoIt == null){ console.log("创建 COM 对象失败!请检查 AutoItX3 是否安装") return } // 示例1:控制鼠标移动 autoIt.MouseMove(100, 100, 10) // 移动到 (100,100),速度10ms // 示例2:发送键盘输入 autoIt.Send("Hello from aardio!{ENTER}") // 示例3:操作记事本窗口 autoIt.Run("notepad.exe") autoIt.WinWaitActive("无标题 - 记事本", "", 3) autoIt.Send("aardio 成功调用 AutoItX3") console.log("AutoItX3 调用完成") console.pause() ``` ### 关键方法说明 | 方法 | 功能 | 示例 | |---------------------|------------------------------|------------------------------| | `MouseMove(x,y,speed)` | 移动鼠标 | `autoIt.MouseMove(500,500,5)` | | `Send(keys)` | 发送按键 | `autoIt.Send("^{s}")` (Ctrl+S) | | `WinActivate(title)` | 激活窗口 | `autoIt.WinActivate("计算器")` | | `Run(program)` | 运行程序 | `autoIt.Run("calc.exe")` | | `Sleep(ms)` | 延迟等待 | `autoIt.Sleep(1000)` (1秒) | [^1] ### 常见问题解决 1. **COM 对象创建失败** - 以管理员身份运行:`regsvr32 AutoItX3.dll` - 检查系统位数:确保 DLLaardio 程序位数一致(32/64位) 2. **方法调用无效** - 使用完整方法名:AutoItX3 方法区分大小写 - 添加错误处理: ```aardio try { autoIt.InvalidMethod() } catch(e) { console.log("调用错误:", e) } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值