我正在使用佳能 SDK 从相机获取事件。在 SDK 中,我们注册了一个回调函数,当特定事件发生时调用该函数。我已经构建了一个与 SDK 通信的 Java 包装器。
但是当事件被触发时,我的窗口并没有直接得到事件。事实上,在 Windows 上,这就是我获取事件并将其发送给自己的方式:
private static final User32 lib = User32.INSTANCE;
boolean hasMessage = lib.PeekMessage( msg, null, 0, 0, 1 ); // peek and remove
if( hasMessage ){
lib.TranslateMessage( msg );
lib.DispatchMessage( msg ); //message gets dispatched and hence the callback function is called
}
基本上,如果窗口已接收到事件,则可以窥视,然后继续。在 Mac 上,可以使用Cocoa
NSApplication 并WindowServer
发送事件(如果有)来完成。
我正在寻找类似的替代方案,使用X11
. 任何示例代码/链接就足够了。
PS:这是对此的后续问题。