Closed barbara012 closed 4 months ago
参数类型对应的 C 语言类型
AXUIElementRef element:
类型: AXUIElementRef
对应的 C 语言类型: AXUIElementRef 是一个指向 __AXUIElement 结构体的指针,实际上是一个 Core Foundation 类型,用于表示一个 UI 元素。
CFStringRef attribute:
类型: CFStringRef
对应的 C 语言类型: CFStringRef 是一个指向 __CFString 结构体的指针,实际上是一个 Core Foundation 类型,用于表示一个不可变的字符串。
CFTypeRef *value:
类型: CFTypeRef *
对应的 C 语言类型: CFTypeRef 是一个指向 __CFType 结构体的指针,实际上是一个 Core Foundation 类型,用于表示任意类型的 Core Foundation 对象。CFTypeRef * 是一个指向 CFTypeRef 的指针,用于接收函数返回的属性值。
业务逻辑的问题可以自行排查
参数类型对应的 C 语言类型 AXUIElementRef element: 类型: AXUIElementRef 对应的 C 语言类型: AXUIElementRef 是一个指向 __AXUIElement 结构体的指针,实际上是一个 Core Foundation 类型,用于表示一个 UI 元素。 CFStringRef attribute: 类型: CFStringRef 对应的 C 语言类型: CFStringRef 是一个指向 __CFString 结构体的指针,实际上是一个 Core Foundation 类型,用于表示一个不可变的字符串。 CFTypeRef *value: 类型: CFTypeRef * 对应的 C 语言类型: CFTypeRef 是一个指向 __CFType 结构体的指针,实际上是一个 Core Foundation 类型,用于表示任意类型的 Core Foundation 对象。CFTypeRef * 是一个指向 CFTypeRef 的指针,用于接收函数返回的属性值。
业务逻辑的问题可以自行排查
没理解到,所以第三个参数应该怎么传,大佬可以进一步指导一下不? 第一个参数是通过另一个函数拿到的
const systemWideElement = load({
library: 'ApplicationServices',
funcName: 'AXUIElementCreateSystemWide',
retType: DataType.External,
paramsType: [],
paramsValue: []
});
第二个参数是个常量。
第三个不会了,尝试用 unwrapPointer处理一下 createPointer,还是提示expect External, got: Object
,声明如下
const ele = {
Label: '',
Title: '',
Value: '',
Type: '',
Position: {
x: 0,
y: 0,
},
Size: {
w: 0,
h: 0,
}
}
const Ele = {
Label: DataType.String,
Title: DataType.String,
Value: DataType.String,
Type: DataType.String,
Position: {
x: DataType.Double,
y: DataType.Double,
},
Size: {
w: DataType.Double,
h: DataType.Double,
}
}
const elePointer = createPointer({
paramsType: [Ele],
paramsValue: [ele],
});
Current ffi-rs version
ffi-rs-darwin-arm64
Current Node.js arch
arm64 darwin
Descibe your problem in detail
上面的调用里的第三个参数,不知道怎么传。
该函数在 swift 里的定义
我自己尝试 这样声明 然后
wrapPointer(elePointer)
当作第三个参数。 但是调用不成功What's your expect result
期望拿到元素信息
The reproduction repo address