Replies: 4 comments 6 replies
|
目前尝试所做的实现中将WindowID整数强制类型转换为指针(当然这个指针指向的地址是无效的,使用的只是地址本身,使用时需转换回来) |
0 replies
|
https://github.com/YJBeetle/MaaFramework/blob/181cf168bfa08c39e83c5043b5f20498d4d9c65f/source/MaaToolkit/API/MaaToolkitBufferTypes.hpp#L29 在这个分支我尝试对结构体进行扩展,作为一种备选方案之一,扩展后结构体如下: |
0 replies
|
对于 Linux 上的 wlroots 支持,设计上计划每个 wlroots 合成器即为一个可操作的会话,因此我扩展后的结构体如下: struct DesktopWindow
{
// ...
// wlroots 片段
std::filesystem::path socket_path; // Wayland Socket 路径
}; |
0 replies
|
看起来没啥问题,但是如果要改这里的话要考虑要不要整体调整对外接口的逻辑。目前是每个字段都有一个getter函数,这个结构体只是内部的模型而已。 |
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
我正在尝试为MacOS上的原生屏幕截取和鼠标键盘输入做实现,但是在实现DesktopWindowMacOSFinder时候遇到了一些问题。
目前的struct DesktopWindow定义如下:
这段定义显然是为了win而设计的,macOS上使用一个无符号整数来标记窗口,称之为Window ID,此外,对于输入,我们将可能会用到目标窗口的PID(调用CGEventPostToPid等),当前的DesktopWindow结构体无法完全满足需求,之所以说是不完全,因为也有折中办法:比如对hwnd进行强制类型转换来存储WindowID、在Control初始化时候通过CGWindowListCopyWindowInfo然后遍历匹配WindowID来获取PID等方法,但是这显然不优雅,另外强制转换存储WIndowID可能会导致Py等的binding那边出现一些奇怪状况。
我想在这里询问并讨论,对于struct DesktopWindow是否有什么更新计划(比如使用union等),以及是否有什么其他好的想法?
我在这里做了一些测试:https://github.com/YJBeetle/MacOSScreenCaptureDemo 可以用来参考MacOS的实现需要用到哪些。
All reactions