我正在尝试使用Java Access Bridge从C++应用程序中获取有关Swing组件的信息.但是,我注册的回调都没有被调用.我尝试在每个句柄上调用windows然后调用IsJavaWindow(),但它总是返回false.为什么它显然不起作用的任何想法?
我认为这是我的应用程序而不是桥接安装的问题,因为演示的Monkey和Ferret程序工作,initializeAccessBridge()返回true,调试器显示WindowsAccessBridge dll已加载.
我在Windows Vista上使用Java 6,更新13,我认为访问桥的版本2.0.1.
JavaAccess::JavaAccess(void)
{
using namespace std;
BOOL isInitialized = initializeAccessBridge();
if(isInitialized)
{
cout << "Bridge Initialized!" << endl;
}
else
{
cout << "Initialization failed!" << endl;
return;
}
EnumWindows((WNDENUMPROC)EnumWndProc, NULL);
SetJavaShutdown(OnJavaShutdown);
SetFocusGained(OnFocusGained);
SetMouseClicked(OnMouseClicked);
}
JavaAccess::~JavaAccess(void)
{
shutdownAccessBridge();
}
void JavaAccess::OnJavaShutdown( long vmID )
{
using namespace std;
cout << "Java shutdown!" << endl;
}
void JavaAccess::OnFocusGained( long vmID, FocusEvent event, AccessibleContext context )
{
using namespace std;
cout << "Focus Gained!" << …Run Code Online (Sandbox Code Playgroud)