使用 MaaFramework.Binding.CSharp 必须满足最低系统要求。以下未列出的平台可能也可运行。
| 操作系统版本 | 最低要求 / 受限原因 |
|---|---|
| Windows 10+ | 受限于 .NET 7.0 |
| macOS 12+ | 受限于 MaaFramework |
| Linux Ubuntu 23.10+ |
需要 libc6 2.38+ 及其他依赖 |
| Android | 未经测试 |
- 架构支持:x64, arm64
MaaFramework.Binding.CSharp 的必需依赖项:
| 平台 | 包 ID | 依赖链接 |
|---|---|---|
| Windows | Maa.Framework Maa.Framework.Runtimes Maa.Framework.Runtime.win-arm64 Maa.Framework.Runtime.win-x64 |
Visual C++ 可再发行程序包 |
参考 MaaFramework 文档:English | 简体中文
实现示例可查看 SampleResource。
| 包 ID | 描述 |
|---|---|
| Maa.Framework | 引用了 Native 和 Runtimes 的元包 |
| Maa.Framework.Native | 引用了 Binding.Native 和 AgentBinary 的元包 |
| Maa.Framework.Binding | 抽象层 |
| Maa.Framework.Binding.Native | 本机 API 封装 |
| Maa.Framework.Runtimes 平台专用包 |
预编译的 MaaFramework 二进制文件。 默认不包含 Android 包。 |
| Maa.AgentBinary | 预编译的 Agent 二进制文件 |
dotnet add package Maa.Framework --prerelease-
添加包
dotnet add package Maa.Framework --prerelease -s https://maaxyz.github.io/pkg/nuget/index.json
-
配置 NuGet 源
支持的运行时标识符列表详见此处。
例如 Windows 平台需手动引用以下包:
Maa.Framework.NativeMaa.Framework.Runtime.win-arm64Maa.Framework.Runtime.win-x64
准备工作:
adb connect HOST[:PORT]
从 sample 文件夹中的 powershell 或 bash 脚本快速开始。
// using MaaFramework.Binding;
MaaToolkit.Shared.Config.InitOption(".cache");
var devices = MaaToolkit.Shared.AdbDevice.Find();
if (devices.IsEmpty)
throw new InvalidOperationException();
using var maa = new MaaTasker
{
Controller = devices[0].ToAdbController(),
Resource = new MaaResource("../../src/MaaFramework.Binding.UnitTests/SampleResource"),
DisposeOptions = DisposeOptions.All,
};
if (!maa.IsInitialized)
throw new InvalidOperationException();
maa.AppendTask("EmptyNode")
.Wait()
.ThrowIfNot(MaaJobStatus.Succeeded);
Console.WriteLine("EmptyNode Completed");// using MaaFramework.Binding.Buffers;
// using MaaFramework.Binding.Custom;
var nodeName = "MyCustomTask";
var param = $$"""
{
"{{nodeName}}": {
"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"
}
}
}
""";
// Register custom components
maa.Resource.Register(new MyRec());
maa.Resource.Register(new MyAct());
maa.AppendTask(nodeName, 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)
{
Console.WriteLine($"Enter {Name}");
return results.Box.TrySetValues(0, 0, 100, 100)
&& results.Detail.TrySetValue("Hello World!");
}
}
internal sealed class MyAct : IMaaCustomAction
{
public string Name { get; set; } = nameof(MyAct);
public bool Run(in IMaaContext context, in RunArgs args, in RunResults results)
{
Console.WriteLine($"Enter {Name}");
return true;
}
}- 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
