你的计算机应满足最低系统要求,才能运行和使用 MaaFramework.Binding.CSharp
,该框架可能在此处未列出的其他平台或版本上运行。
操作系统版本 | 最低要求 / 受限原因 |
---|---|
Windows 10+ | 受限于 .NET 7.0 |
macOS 12+ | 受限于 MaaFramework |
Linux Ubuntu 23.10+ |
libc6 2.38+ 等 |
Android | Unknown |
- 架构限制: X64, Arm64
MaaFramework.Binding.CSharp
需要安装以下依赖项才能正常运行。
平台 | 包 Id | 依赖下载 |
---|---|---|
Windows | Maa.Framework Maa.Framework.Runtimes Maa.Framework.Runtime.win-arm64 Maa.Framework.Runtime.win-x64 |
Visual C++ Redistributable |
请参阅 MaaFramework 文档 ( English | 简体中文 ) 。
如同在 MaaFramework.Binding.CSharp
使用的的 SampleResource 。
包 Id | 描述 |
---|---|
Maa.Framework | 引用 Native 和 Runtimes 的元包 |
Maa.Framework.Native | 引用 Binding.Native 和 AgentBinary 的元包 |
Maa.Framework.Binding | Binding 的抽象层 |
Maa.Framework.Binding.Native | Binding 的本机 API 包装实现层 |
Maa.Framework.Runtimes Maa.Framework.Runtime.win-x64 Maa.Framework.Runtime.win-arm64 Maa.Framework.Runtime.linux-x64 Maa.Framework.Runtime.linux-arm64 Maa.Framework.Runtime.osx-x64 Maa.Framework.Runtime.osx-arm64 Maa.Framework.Runtime.android-x64 Maa.Framework.Runtime.android-arm64 |
MaaFramework的本机二进制文件。 Runtimes 未引用 android 包。 |
Maa.AgentBinary | 预构建的代理二进制文件,包括 minitouch、maatouch 和 minicap。 |
dotnet add package Maa.Framework --prerelease
- shell
dotnet add package Maa.Framework --prerelease -s https://nuget.pkg.github.com/maaxyz/index.json
- .csproj
<PropertyGroup>
<RestoreSources>$(RestoreSources);https://api.nuget.org/v3/index.json;https://maaxyz.github.io/pkg/nuget/index.json</RestoreSources>
</PropertyGroup>
MaaFramework
目前支持的 Runtime Id 可在此处查询。
要想使用指定的 RIDs,例如使用已受支持的 win
平台包,请手动引用如下包:
Maa.Framework.Native
Maa.Framework.Runtime.win-arm64
Maa.Framework.Runtime.win-x64
准备工作:
adb connect HOST[:PORT]
using MaaFramework.Binding;
var devices = new MaaToolkit(true).AdbDevice.Find();
if (devices.IsEmpty)
throw new InvalidOperationException();
using var maa = new MaaTasker
{
Controller = devices[0].ToAdbController(),
Resource = new MaaResource("./SampleResource"),
DisposeOptions = DisposeOptions.All,
};
if (!maa.Initialized)
throw new InvalidOperationException();
maa.AppendPipeline("EmptyTask")
.Wait()
.ThrowIfNot(MaaJobStatus.Succeeded);
Console.WriteLine("EmptyTask Completed");
using MaaFramework.Binding.Buffers;
using MaaFramework.Binding.Custom;
var taskName = "MyCustomTask";
var param = $$"""
{
"{{taskName}}": {
"recognition": "Custom",
"custom_recognition": "MyRec",
"custom_recognition_param": {
"my_rec_key": "my_rec_value"
},
"action": "Custom",
"custom_action": "MyAct",
"custom_action_param": {
"my_act_key": "my_act_value"
}
}
}
""";
maa.Resource.Register(new MyRec());
maa.Resource.Register(new MyAct());
maa.AppendPipeline(taskName, param)
.Wait()
.ThrowIfNot(MaaJobStatus.Succeeded);
internal sealed class MyRec : IMaaCustomRecognition
{
public string Name { get; set; } = nameof(MyRec);
public bool Analyze(in IMaaContext context, in AnalyzeArgs args, in AnalyzeResults results)
{
results.Box.SetValues(0, 0, 100, 100);
results.Detail.SetValue("Hello World!");
return true;
}
}
internal sealed class MyAct : IMaaCustomAction
{
public string Name { get; set; } = nameof(MyAct);
public bool Run(in IMaaContext context, in RunArgs args)
{
return true;
}
}
-
MBA BA 小助手 基于 MAA 全新架构的 BA 小助手。 图像技术 + 模拟控制,解放双手,不再点点点!由 MaaFramework 强力驱动!
-
MFAWPF MFA 任务管理器 基于 MAA 全新架构的 通用 GUI。 由 MaaFramework 强力驱动!
-
您还可以在 单元测试 中找到更多示例。
我们在源代码文件中编写了详细的文档注释。
如果你仍然希望查阅特定版本的 MaaFramework.Binding.CSharp 的 API 参考,可以参考项目的发布页面并下载附带的 docs.zip
文件。
我们欢迎对 MaaFramework.Binding.CSharp 的贡献。如果您发现了 bug 或有功能请求,请在 GitHub 仓库中打开一个 issue。如果您想贡献代码,可以随时 fork 仓库并提交 pull request。
MaaFramework
采用 LGPL-3.0
许可证开源。
- QQ 群: 595990173