5

VendorString() 不起作用,它始终是 Sun Microsystems,即使它是为 Solaris 构建的 Xorg。

4

3 回答 3

2
$ xdpy信息 | grep 供应商
供应商字符串:X.Org 基金会
供应商版本号:10601901

这是 Linux 上的 xorg-server 1.6.1。希望 Solaris 上的 XOrg 和 XSun 在这里会有所不同。

要输出这两个字段,xdpyinfo请调用ServerVendor以确定供应商,然后根据具体情况对VendorRelease的返回进行不同的解析ServerVendor

顺便说一句,是什么VendorString()?我没有那个名字的函数或宏......

于 2009-06-23T19:00:36.843 回答
1

这可能有点老套,但是如果您查看从 Xsun 和 Xorg 返回的扩展列表,您应该会看到 Xorg 有一些额外的 XFree86 派生扩展。

xdpyinfo可用于通过命令行列出扩展名以检查差异;以编程方式,您可以使用XListExtensions()XQueryExtension()

(我手头没有 Xsun X 服务器,但我很确定当我过去查看时它们有很大不同)。

于 2009-06-23T18:50:01.483 回答
0

谢谢!糟糕,它是 VendorRelease() 字符串。无论如何,不​​幸的是我们不能在这个字符串上下注。对于 Xsun 和 Xorg 来说,它经常变化足以带来麻烦。我已经找到了一个解决方案(希望)适用于他们和各种其他(派生的)服务器,如 Xvfb、Xnest 等。

Xsun 确实在 KP_(数字键盘)键码的键符数组中使用了第三个值。Xorg 使用 1-st 或 2-nd。嗅探器应该首先获取 KP_keysym 的键码,例如 XK_KP_7,其次,嗅探 XKeycodeToKeysym(d,keycode, [0-3]) 中的内容。我们的 XK_KP_7 将在 Xsun 的索引 2 上。

于 2009-06-24T07:01:35.800 回答