我正在将一些代码从Linux移植到Mac。我是Mac的新手所以请忍受....
在Linux上,我们使用X11库中的XRecord进行输入捕获。我试图在Mac上使用XQuartz作为替代品但未能使其正常运行。
我希望在X11 / lib / xorg / modules中看到librecord.so,这样我就可以通过添加Load" record"来启用它。到我的xorg.conf文件,但record.so不存在,我似乎无法在线或在XQuartz文档中找到任何添加它的方法。
因此,此代码会抛出预期的错误:
int major, minor;
if (XRecordQueryVersion(m_Info.m_Display, &major, &minor) != false)
{
std::string logMessage = "XRecord version: %d.%d\n", major, minor;
LOG4CXX_DEBUG (LOGGER, COMMON_STR (logMessage));
}
else
{
THROW_EXCEPTION (errval::XRECORD_UNAVAILABLE);
}
有人有任何建议吗?
答案 0 :(得分:1)
XRecord是X的扩展名。因此,即使作为可选加载的组件,也不能假定它存在。 XQuartz没有实现它。
您必须将其移植到OS X.这可能需要构建您自己的X服务器版本,具体取决于XRecord是否需要在其余X服务器代码中使用非标准挂钩。
您希望使用XRecord扩展程序做什么?如果您的目标是在OS X上记录系统范围内的输入,那么无论如何它都不是正确的解决方案。在OS X上,X11是一个辅助窗口系统,它是一个基于本机的客户(用户应用程序)。 X11通常不会在系统的其余部分看到所有输入或窗口操作。