0

目前正在开发某种动态加载库插件。该插件将由其他应用程序加载。编程语言是 C++。

我需要在运行时检测 Unix 上的鼠标按钮情况,例如 MacOSX 和 Linux。说明鼠标左键当前是否在应用程序上保持或释放。应用程序本身不提供该功能以允许库这样做。在 Windows 中,我使用鼠标钩子来捕获那个东西,但我找不到 Unix 系统的答案。

4

1 回答 1

0

您还没有说主机应用程序使用什么方法与计算机的 GUI 交互。原始X11?像GTK+Gnome应用程序等使用)或QtKDE应用程序等使用)这样的工具包?在 MacOS 的情况下,主机应用程序是使用本机 GUI 还是 X11?实际上,甚至不清楚您是否可以假设主机应用程序有任何 GUI!

如果宿主应用程序正在使用一个工具包并且您知道它是哪个工具包,那么您应该使用该工具包提供的任何工具来获取鼠标事件。

如果你不能确定宿主应用程序在为它的 GUI 做什么,或者即使它有一个,那么你总是可以绕过 X11 并直接访问鼠标,但是有一个很大的警告:你怎么知道你是否正在访问正确的鼠标?请注意,主机主机应用程序可能与远程 X11 显示器一起运行,或者它可能是通过 SSH 连接在某些远程计算机上运行的非 GUI 应用程序。鼠标是否连接到运行应用程序的计算机(如果有的话!)真的是您想要的鼠标吗?

如果您仍想继续使用这种方法,在 Linux 下您可以打开虚拟设备...或使用或/dev/input/mice打开特定鼠标等...从此设备读取数据将为您提供PS/2 格式的数据。/dev/input/mouse0/dev/input/mouse1

于 2012-05-02T15:34:50.107 回答