最新版本的JNA已经有了一些应该解决的问题(作为JNA的作者之一,Luke Quinane,声明here)。如果您使用最新版本并检查JNA API,您将看到WinUser.WNDENUMPROC接口的方法实际上使用WinDef.HWND作为其参数,而不是long或int。

例如:

import com.sun.jna.Native;

import com.sun.jna.Pointer;

import com.sun.jna.platform.win32.WinDef.HWND;

import com.sun.jna.platform.win32.WinUser;

import com.sun.jna.platform.win32.WinUser.WNDENUMPROC;

import com.sun.jna.win32.StdCallLibrary;

public class TryWithHWND {

public interface User32 extends StdCallLibrary {

User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);

boolean EnumWindows(WinUser.WNDENUMPROC lpEnumFunc, Pointer arg);

int GetWindowTextA(HWND hWnd, byte[] lpString, int nMaxCount);

}

public static void main(String[] args) {

final User32 user32 = User32.INSTANCE;

user32.EnumWindows(new WNDENUMPROC() {

int count = 0;

@Override

public boolean callback(HWND hWnd, Pointer arg1) {

byte[] windowText = new byte[512];

user32.GetWindowTextA(hWnd, windowText, 512);

String wText = Native.toString(windowText);

// get rid of this if block if you want all windows regardless of whether

// or not they have text

if (wText.isEmpty()) {

return true;

}

System.out.println("Found window with text " + hWnd + ", total " + ++count

+ " Text: " + wText);

return true;

}

}, null);

}

}

java取窗口句柄_如何获取Java中的所有窗口句柄列表(使用JNA)?相关推荐

  1. linux qt 音频文件怎么打开,Qt:获取Linux中可用音频设备的列表

    我想要获取我的Linux系统上可用的所有音频设备的列表.然后我会将这个列表显示在一个组合框中,用户将从中选择用于录制/播放的设备.根据用户的选择,我将构建QAudioInput和QAudioOutpu ...

  2. 怎么查onedrive的服务器位置,获取组织中OneDrive URL 的列表

    获取组织中OneDrive URL 的列表 2021/6/26 本文内容 本文适用于 Microsoft 365 中的全局SharePoint管理员. 查看组织中OneDrive用户和 URL 的列表 ...

  3. 编写一个java程序_鼠标在java窗口上的坐标_请问如何在Java中获取窗口外部的鼠标单击坐标...

    尽管可能,但可能会受到限制: 为焦点事件添加一个AWTEventListener.只要您的应用在单击按钮之前就具有焦点,就会收到焦点丢失事件.然后查询指针位置. 限制是,当然,您的应用程序失去了焦点. ...

  4. java Clob转CLOB_Java获取Oracle中CLOB字段转换成String

    Java获取Oracle中CLOB字段转换成String : try {PreparedStatement stmt = session.connection().prepareStatement(s ...

  5. java 对象地址_如何获取Java对象的地址?

    有没有办法获取Java对象的地址? 问题来自哪里?:首先,我读取属性文件,并将文件中的所有数据放入表中.属性文件可以更新.所以,我想听那个文件.我使用PropertyChangeSupport和Pro ...

  6. groovy 使用java类_深入学习java中的Groovy 和 Scala 类

    前言 Java 传承的是平台,而不是语言.有超过 200 种语言可以在 JVM 上运行,它们之中不可避免地会有一种语言最终将取代 Java 语言,成为编写 JVM 程序的最佳方式.本系列将探讨三种下一 ...

  7. java提取姓名_UDF-java获取名字中的姓

    package com.st.udf; import java.util.ArrayList; import org.apache.hadoop.hive.ql.exec.UDF;/** * * @a ...

  8. JAVA如何通过正则表达式获取文本中数字

    如何通过正则表达式获取字符串中的数字 实例: Java代码   public void Test0108_03() { String input="winnt 5.1 internet wi ...

  9. java的get请求获取网络中的图片

    写项目的时候写的,感觉以后还会用,所以记录一下 一种通过 java 的get请求获取 网上图片的数据 二种,通过获取本地的具体文件下的图片的数据 前台写的 date.t.avatat 是 存在数据库中 ...

  10. cmd中加载java源文件_如何在cmd中编译和运行java源文件

    如何在cmd中编译和运行java源文件 首先写一个名为HelloWorld.java的java源文件,存储在如C:/java/src的地址,我们再假设待会要存储的位置是C:/java/bin,则我们做 ...

最新文章

  1. 《新一代SDN——VMware NSX 网络原理与实践》——导读
  2. 数据库设计中的范式、关联与nosql分析【转】
  3. 搭建WSS 开发测试环境
  4. 注册Github账户过程
  5. 对C语言 结构数组 指向结构变量的指针 指向结构数组的指针
  6. CTO案头必备|AI技术产业落地的42章经
  7. 教你一招如何使用几行代码实现zookeeper作为springcloud的服务注册中心
  8. pandas最大的时间间隔_pandas计算最大连续间隔的方法
  9. 1200兆路由器网速_如何选购路由器才能发挥宽带的网速?
  10. python10的因数_十五道Python小案例,学会这些,Python基础已过关!
  11. python极简教程_Python 极简教程(六)运算符
  12. bada 2D游戏编程之一——图形绘制
  13. ant如何形成时间轴和图库_如何让景观设计更具有逻辑性?
  14. VMWare File Format Learning Use VHD File To Boot VMWare CoreOS Docker Configuration And Runnin...
  15. STM32重上电后,HAL_GetDEVID返回0
  16. oracle 2的次方,Oracle第二次课 - osc_qyg23ccq的个人空间 - OSCHINA - 中文开源技术交流社区...
  17. 如何在arcmap中使用取色器
  18. python-三天打渔、两天晒网 - 实验7 简单的循环程序
  19. super和this
  20. 实用常识 | 将PDF文件页面拆分成两个页面(老白嫖怪了)

热门文章

  1. 《人工智能 一种现代方法》第三版 第1章 概述 笔记摘录
  2. unity天空盒渐变_在Unity3D中使用天空盒
  3. Halcon基础大全(基础算子、高阶算子、数组、分割、字符检测、模板匹配、特别案例)
  4. 利用ziparchive压缩文件、zip_file解压文件
  5. Turbo码编码举例计算
  6. AD19生成PCB_在Altium中导入Cadence Allegro的PCB文件
  7. vue 回到顶部简单动画效果
  8. Pr 视频效果:过渡、透视、通道
  9. 《别做“正常”的傻瓜(全新第2版)》
  10. c4dr20怎么安装oc渲染器怎么安装_c4d怎么安装oc渲染器/插件