EnumChildWindows提供窗口的所有元素(Java)。但如何知道用户点击了哪个按钮?

EnumChildWindows提供窗口的所有元素(Java)。但如何知道用户点击了哪个按钮?,java,java-native-interface,Java,Java Native Interface,下面的代码提供了任何窗口的所有元素,但我想知道用户访问的特定按钮/链接/文本框 User32.INSTANCE.EnumChildWindows(GetForegroundWindow(), new User32.WNDENUMPROC() { int count = 1; public boolean callback(HWND hWnd, Pointer

下面的代码提供了任何窗口的所有元素,但我想知道用户访问的特定按钮/链接/文本框

User32.INSTANCE.EnumChildWindows(GetForegroundWindow(),
                    new User32.WNDENUMPROC() {
                        int count = 1;

                        public boolean callback(HWND hWnd, Pointer userData) {
                            byte[] textBuffer = new byte[512];
                            User32.INSTANCE.GetClassNameA(hWnd, textBuffer, 512);
                                    byte[] childBuffer = new byte[512];
                            User32.INSTANCE.GetWindowTextA(hWnd, childBuffer, 512);
                            return true;
                        }
                    }, null);

通常,JAVA控件没有窗口,因此EnumChildwindows是无用的。请你再详细说明一下上下文好吗?你想做什么?实际上,我正在尝试创建一个应用程序,它可以用java跟踪所有用户操作。到目前为止,我可以得到所有信息,比如:哪个是活动窗口,窗口的类别是什么,窗口的标题,哪些是活动窗口的组件,以及这些组件的标题和类别。但我不想要活动窗口的所有组件,我只想获取用户单击的元素的信息(类、标题等)。你不能用Win32来做那件事。我想进一步澄清。。让我给你一个例子:如果我打开计算器,按1+2=3,我们的应用程序(用java编写)应该告诉我们像:类:按钮标题:1类:按钮标题:+类:按钮标题:2等等。。如果我在那个位置打开微软Office,应用程序应该捕获用户执行的所有操作。到目前为止,应用程序告诉我计算器已经打开,什么是标题,什么是进程ID。它还告诉我们有28个组件具有Button类。但我无法找出用户在计算器上做什么,以及用户正在单击哪个按钮。