Tag: 辅助function

dispatchPopulateAccessibilityEvent未触发

我正在尝试在我的应用中实现辅助function。 我对它的实际运作方式感到困惑。 我在不同的包中有一个简单的imageView,我将事件发送到: public final void onClick(final android.view.View v) { android.util.Log.v(CLASSNAME,”onClick tag:”+v.getTag()); v.sendAccessibilityEvent(android.view.accessibility.AccessibilityEvent.TYPE_VIEW_CLICKED); 我已按照以下方式实施Accessibility类: import android.content.Context; public final class Accessibility extends android.view.View { public Accessibility(Context context) { super(context); // TODO Auto-generated constructor stub } public static android.view.accessibility.AccessibilityManager manager = (android.view.accessibility.AccessibilityManager)getSystemService(android.content.Context.ACCESSIBILITY_SERVICE); public static android.view.accessibility.AccessibilityEvent event = android.view.accessibility.AccessibilityEvent.obtain(); public static Accessibility accessibility; public static boolean isEenabled() { […]

64位计算机上的32位Java辅助function

我有一个32位应用程序,它使用Java Accessibility(WindowsAccessBridge-32.dll,通过Java Access Bridge),并且在32位计算机上运行良好,但在x64计算机上失败。 我相信我已将其追踪到Windows_run之后的第一个电话: getAccessibleContextFromHWND(hwnd, out vmId, out context) 定义如下: [return: MarshalAs(UnmanagedType.Bool)] [DllImport(“WindowsAccessBridge-32.dll”, CallingConvention = CallingConvention.Cdecl)] public extern static bool getAccessibleContextFromHWND(IntPtr hwnd, out Int32 vmID, out IntPtr acParent); 此调用在32位系统上正常工作,返回True,填充vmId(具有一些5位数值,其中)和上下文 – 而在64位系统上,它返回True,填充’context’,但返回vmId为’0’。 如果我假设0有效(即使它是一个类似于32位系统上的指针的随机5位数字),下一个调用仍然会失败: AccessibleContextInfo aci = new API.AccessibleContextInfo(); if (!getAccessibleContextInfo(vmId, context, ref aci)) throw new Exception(); 哪里: [return: MarshalAs(UnmanagedType.Bool)] [DllImport(“WindowsAccessBridge-32.dll”, CallingConvention = CallingConvention.Cdecl)] public extern […]

我是否可以在不更改系统的DPI设置的情况下设置Java Swing应用程序的DPI分辨率?

我有一个使用Substance LookAndFeel和Windows作为目标平台的Java应用程序,我想在不改变系统设置的情况下增加应用程序的DPI设置。 我想这样做是因为我不想强迫用户重新启动Windows,因为很多Windows应用程序似乎都有很高的DPI设置问题(> 120) PS:我知道Substance LaF允许在运行时缩放字体大小,但这样只调整控件的高度,而不是宽度。 我希望我的GUI完全缩放,如果我设置系统的DPI设置会发生。

如何使用AutoHotkey自动化Java应用程序?

我在工作中使用Java应用程序。 我需要发送点击按钮并填写文本框。 我希望这些行动能够在后台发生。 窗口的ahk_class是SunAwtFrame,没有任何控件暴露给WindowSpy。 我已经使用JavaFerret来确定我要按的第一个按钮是否具有AccessibleAction Version Information: Java virtual machine version: 1.7.0_25 Access Bridge Java class version: 1.7.0_25 Access Bridge Java DLL version: AccessBridge 2.0.2 Access Bridge Windows DLL version: AccessBridge 2.0.2 AccessibleContext information: Name: New Call Description: Place a new call Role: push button Role in en_US locale: push button States: enabled,focusable,visible,showing,opaque States in […]

私有成员访问Java

私有成员是在类级别还是在对象级别访问。 如果它在对象级别,则以下代码不应编译 class PrivateMember { private int i; public PrivateMember() { i = 2; } public void printI() { System.out.println(“i is: “+i); } public void messWithI(PrivateMember t) { ti *= 2; } public static void main (String args[]) { PrivateMember sub = new PrivateMember(); PrivateMember obj = new PrivateMember(); obj.printI(); sub.messWithI(obj); obj.printI(); } } 请说明在sub的messWithI()方法中访问obj的成员i是否有效