Linux 的 PInvoke GetWindowRect 等效项

Posted

技术标签:

【中文标题】Linux 的 PInvoke GetWindowRect 等效项【英文标题】:PInvoke GetWindowRect Equivalent for Linux 【发布时间】:2020-11-22 09:19:14 【问题描述】:

我正在尝试编写一个使用 C# .Net Core 输出窗口位置/大小的程序。我已经使用基本上使用 User32 dll 的 PInvoke nuget 包为 Windows 完成了此操作。我正在尝试做同样的事情,但对于 linux 发行版。

有没有人对此有所了解,或者他们能指出我正确的方向吗?我已经下载了 Xlib nuget 包,但我真的不知道如何使用它。

我想在 Linux 上我可以使用 Process.MainWindowHandle 获取所有指针,但是我不确定我需要将这些句柄传递给哪些 API 才能取回 RECT 对象。

我想做一些类似于 xdotool 在 GetWindowGeometry 方面所做的事情,但在我的 c# 应用程序中。

谢谢大家!

【问题讨论】:

【参考方案1】:

您需要使用XGetWindowAttributesXGetGeometry

C# 使用示例:

XGetGeometry:https://github.com/search?q=XGetGeometry+language%3AC%23&type=Code XGetWindowAttributes:https://github.com/search?q=XGetWindowAttributes+language%3AC%23&type=Code&ref=advsearch&l=C%23&l=

【讨论】:

以上是关于Linux 的 PInvoke GetWindowRect 等效项的主要内容,如果未能解决你的问题,请参考以下文章

调用 PInvoke 函数 ... 使堆栈不平衡

Pinvoke 中的一个问题

PInvoke - 如何编组'SomeType * []'?

PInvoke:返回的双精度数组有问题吗?

如何制作一个 PInvoke 友好的原生 API?

Pinvoke DeviceIoControl 参数