问题标签 [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.

0 投票
2 回答
1242 浏览

c - 使用 java/jna 获取硬件信息以在所有操作系统上工作

嗨,我正在尝试编写一个 java 小程序,它将获取一些硬件信息、mac 地址(我已经完成)、cpuid 主板序列号和硬盘驱动器序列号。我知道我需要使用 jna 来做到这一点。我的问题是,在 c/c++ 中有没有办法获取不依赖于平台的信息?我所看到的一切都只能在 Windows 上工作,我需要它在所有平台上工作。我需要这些信息,以便创建该计算机的唯一 ID。任何帮助或正确方向的观点将不胜感激。

0 投票
0 回答
750 浏览

java - 屏幕捕获非活动窗口

是否可以在不将其放在前面的情况下获取受阻窗口的图像内容?另外,是否可以将鼠标点击发送到此类窗口的特定位置?我想在 Java 中执行此操作,使用 JNA,运行 Windows XP(如果可能,它是否也适用于 Windows 7?)。如果可以做到,您介意告诉我需要哪些功能以及在哪里可以阅读有关它的信息,因为我还没有与 JNA 合作过。谢谢你。

0 投票
3 回答
3180 浏览

java - 将 java.util.Date 对象转换为 Windows FILETIME 结构

我有一个 Java 应用程序,我需要使用 JNA 调用一个 Windows DLL。我需要调用的函数实际上需要一个__int64(在内部它将它分成FILETIME结构的低/高部分)。给定一个java.util.Date对象,如何将其转换为格式化为 a 的适当值FILETIME

0 投票
1 回答
1353 浏览

java - 关于在 OSGi 包中加载 DLL(使用 JNA)的问题

目前,我的包的根目录中有 DLL 文件(rfid.dll;cpl.dll;rfidtx.dll;)。我制作了一个实用程序包来保存 jna.jar,并将 com.sun.jna、com.sun.jna.ptr 作为服务导出。

有问题的捆绑包的清单如下所示:

在我的代码中,JNA 接口声明为:

当我运行时,会显示一些异常消息。根本的例外是:

那么,我该如何解决这个问题呢?我希望有一个人可以帮助我。

0 投票
1 回答
3688 浏览

pointers - JNA 指针转换为结构

我在结构中有一个指针。我将一个结构指针传递给这个指针。

但是我无法将类型转换回这个指向结构的指针。

0 投票
2 回答
5705 浏览

jna - JNA 鼠标钩子的工作示例

任何人都可以为我提供一个 JNA 鼠标钩子的工作示例,它能够在我的 Java Swing 应用程序外部跟踪鼠标移动/单击吗?

提前致谢

0 投票
2 回答
2526 浏览

java - Windows 上的 Java:如何将文件删除到垃圾箱(使用 JNA)

我根本没有使用 Windows API 的经验,所以请原谅我的无知。

我想将文件删除到垃圾箱。如何使用JNA做到这一点以及如何检测这是否不可能,例如,因为文件位于网络共享上?

0 投票
1 回答
334 浏览

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文件中) 替代文字

0 投票
1 回答
482 浏览

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[],然后让它正确转换?

0 投票
1 回答
4044 浏览

java - 禁用 JFrame 中的背景绘图以正确显示 Aero (DWM) 效果

我在 Java 窗口上使用 Windows Vista/7 的 DWM 功能时遇到问题。我想让我的框架的背景使用 Aero 风格。执行此操作的 Windows API 由库DwmExtendFrameIntoClientArea中的函数提供dwmapi。我已经设法通过 JNA 正确调用了该过程,并且它完成了它应该做的事情(例如,您可以看到,在调整框架大小时,在下一次重新绘制之前,您会在尚未绘制的区域中看到适当的航空效果,见附图)。

但是在某个地方(我不知道在哪里)在 Aero 效果上绘制了背景并且效果丢失了。

我已经尝试过的:

  • 使用ContentPane不透明度设置为的自定义false
  • 将 theLayeredPane和 the的不透明度设置RootPane为 false
  • 使用 aFrame而不是 aJFrame
  • 将/的背景颜色设置JFrameContentPane黑色/完全透明
  • 使用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.jarplatform.jar。可从 JNA 主页获取。