问题标签 [jna]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 使用 java/jna 获取硬件信息以在所有操作系统上工作
嗨,我正在尝试编写一个 java 小程序,它将获取一些硬件信息、mac 地址(我已经完成)、cpuid 主板序列号和硬盘驱动器序列号。我知道我需要使用 jna 来做到这一点。我的问题是,在 c/c++ 中有没有办法获取不依赖于平台的信息?我所看到的一切都只能在 Windows 上工作,我需要它在所有平台上工作。我需要这些信息,以便创建该计算机的唯一 ID。任何帮助或正确方向的观点将不胜感激。
java - 屏幕捕获非活动窗口
是否可以在不将其放在前面的情况下获取受阻窗口的图像内容?另外,是否可以将鼠标点击发送到此类窗口的特定位置?我想在 Java 中执行此操作,使用 JNA,运行 Windows XP(如果可能,它是否也适用于 Windows 7?)。如果可以做到,您介意告诉我需要哪些功能以及在哪里可以阅读有关它的信息,因为我还没有与 JNA 合作过。谢谢你。
java - 将 java.util.Date 对象转换为 Windows FILETIME 结构
我有一个 Java 应用程序,我需要使用 JNA 调用一个 Windows DLL。我需要调用的函数实际上需要一个__int64
(在内部它将它分成FILETIME
结构的低/高部分)。给定一个java.util.Date
对象,如何将其转换为格式化为 a 的适当值FILETIME
?
java - 关于在 OSGi 包中加载 DLL(使用 JNA)的问题
目前,我的包的根目录中有 DLL 文件(rfid.dll;cpl.dll;rfidtx.dll;)。我制作了一个实用程序包来保存 jna.jar,并将 com.sun.jna、com.sun.jna.ptr 作为服务导出。
有问题的捆绑包的清单如下所示:
在我的代码中,JNA 接口声明为:
当我运行时,会显示一些异常消息。根本的例外是:
那么,我该如何解决这个问题呢?我希望有一个人可以帮助我。
pointers - JNA 指针转换为结构
我在结构中有一个指针。我将一个结构指针传递给这个指针。
但是我无法将类型转换回这个指向结构的指针。
jna - JNA 鼠标钩子的工作示例
任何人都可以为我提供一个 JNA 鼠标钩子的工作示例,它能够在我的 Java Swing 应用程序外部跟踪鼠标移动/单击吗?
提前致谢
java - Windows 上的 Java:如何将文件删除到垃圾箱(使用 JNA)
我根本没有使用 Windows API 的经验,所以请原谅我的无知。
我想将文件删除到垃圾箱。如何使用JNA做到这一点以及如何检测这是否不可能,例如,因为文件位于网络共享上?
java - Java JNA 似乎无法正常工作
我最近从https://github.com/twall/jna/servlets/ProjectDocumentList?folderID=7408&expandFolder=7408&folderID=0下载了 Java JNA并尝试使用它。但是,如下面的截图所示,无论我将文件放在哪里,https://github.com/twall/jna/中提供的演示源代码都无法编译。请注意,我已经尝试将它们都放在默认包中以及包混淆的所有其他组合中,这只是最新版本。有人知道为什么编译器找不到 JAR 文件中包含的内容吗?(另外,如您所见,类文件都在要找到的jar文件中)
java - Mac OS X 上 UniChar 的正确 JNA 映射是什么?
我有一个这样的 C 结构:
我以预期的方式映射了它:
如果我使用这个版本,我会将字符串的第二个字符放入我的 char[] (“aits D”代表“Macintosh HD”。)我假设这与在 64 位平台和 JNA 上有关将该值映射到 32 位 wchar_t,然后在将它们复制回来时将每个 wchar_t 上的高 16 位切掉。
如果我使用 byte[] 版本,我会得到使用 UTF-16LE 字符集正确解码的数据。
如果我使用 UInt16[] 版本,我会为每个字符获得正确的代码点,但是将它们转换回字符串会很不方便。
有什么方法可以将我的类型定义为 char[],然后让它正确转换?
java - 禁用 JFrame 中的背景绘图以正确显示 Aero (DWM) 效果
我在 Java 窗口上使用 Windows Vista/7 的 DWM 功能时遇到问题。我想让我的框架的背景使用 Aero 风格。执行此操作的 Windows API 由库DwmExtendFrameIntoClientArea
中的函数提供dwmapi
。我已经设法通过 JNA 正确调用了该过程,并且它完成了它应该做的事情(例如,您可以看到,在调整框架大小时,在下一次重新绘制之前,您会在尚未绘制的区域中看到适当的航空效果,见附图)。
但是在某个地方(我不知道在哪里)在 Aero 效果上绘制了背景并且效果丢失了。
我已经尝试过的:
- 使用
ContentPane
不透明度设置为的自定义false
- 将 the
LayeredPane
和 the的不透明度设置RootPane
为 false - 使用 a
Frame
而不是 aJFrame
- 将/的背景颜色设置
JFrame
为ContentPane
黑色/完全透明 - 使用
setLayersOpaque
及其自定义变体,有关更多详细信息,请参阅第一个答案
到目前为止,我无法成功删除该背景。它是 AWT/Swing 的限制吗?如何删除该背景或正确使用 Aero 效果?
非常感谢您的帮助。
截屏
这是一个没有任何内容的框架的屏幕截图,已将 RootPane、LayeredPane 和 ContentPane 的不透明度设置为 false。我在调整大小时很快做到了。您会看到效果已正确应用于 Java 尚未绘制的区域。
http://i55.tinypic.com/v614qo.png(作为一个新用户,我不能直接发布图像...)
奇怪的行为
经过进一步调查,我发现了以下奇怪的行为。如果窗口大小为 150x150 或以下,内容将透明显示。这对于普通的窗口组件来说是非常有问题的。如果您通过覆盖该方法直接在框架上paint()
绘制,则所有内容都是半透明的。此外,坐标系似乎有点偏离,它显示为 的零点JFrame
设置为窗口的实际零点。因此 Swing 尝试绘制到实际窗口边框所在的区域,然后当然不可见。
看到这个截图:http ://d-gfx.kognetwork.ch/java_aero_bug.png
示例代码
这是我使用的代码。
需要jna.jar
和platform.jar
。可从 JNA 主页获取。