使用x11API和Mono/C#了解活动窗口

本文关键字:了解 活动 窗口 x11API Mono 使用 | 更新日期: 2023-09-27 18:25:33

我正在尝试在Ubuntu上使用X11api与Mono和C#。当我试图了解活动窗口时,我有一个SIGSEGV。

导入:

[DllImport("libX11")]
public static extern void XGetInputFocus(IntPtr display, IntPtr focus_return, int revert_to_return);
[DllImport("libX11")]
public static extern IntPtr XOpenDisplay(string display_name);

使用:

IntPtr rootWind = XOpenDisplay(null);           
IntPtr wind;
int ret = 0;
XGetInputFocus(rootWind, wind, ret); //SIGSEGV there

我尝试过使用指针、引用和其他一些方法,但只有一个结果。其他一些api函数工作正常。怎么了?

使用x11API和Mono/C#了解活动窗口

试试这个:

[DllImport("libX11")]
public static extern void XGetInputFocus(IntPtr display, ref IntPtr focus_return, ref int revert_to_return);
IntPtr rootWind = XOpenDisplay(null);           
IntPtr wind;
int ret = 0;
XGetInputFocus(rootWind, ref wind, ref ret);