java accessablity_使用64位Java SDK和64位窗口在C#中运行JavaAccessability的Java应用程序示例...

我有一个示例

Java应用程序,当我下载javaaccessablity-2.0.2时,它使用Java Accessibility(通过Java Access Bridge WindowsAccessBridge-32.dll).虽然它成功调用了getAccessibleContextFromHWND,但它返回false.

请注意,我通过Inspect工具验证了hWnd的正确值.

我的Windows 64位系统中安装了64位Java SDK.以下是我试过的代码.我也尝试过使用WindowsAccessBridge-64.dll,但它提供了相同的行为,即vmID和_acParent返回为零而不是非零值.

class Program

{

[return: MarshalAs(UnmanagedType.Bool)]

[DllImport("WindowsAccessBridge-32.dll", CallingConvention = CallingConvention.Cdecl)]

public extern static bool getAccessibleContextFromHWND(IntPtr hwnd, out Int32 vmID, out Int64 acParent);

[DllImport("WindowsAccessBridge-32.dll", CallingConvention = CallingConvention.Cdecl, ThrowOnUnmappableChar = true, CharSet = CharSet.Unicode)]

private extern static void Windows_run();

[DllImport("user32.dll", SetLastError = true)]

static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

static void Main(string[] args)

{

Int32 vmID = 0;

Int64 _acParent =0;

Windows_run();

IntPtr hWnd = (IntPtr)FindWindow("SunAwtFrame","Standalone SwingApp");

bool retVal = getAccessibleContextFromHWND(hWnd, out vmID, out _acParent);

}

}

我已阅读a similar post但它没有解决我的问题.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值