問題タブ [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を使用してハードウェア情報を取得する

こんにちは私はいくつかのハードウェア情報、macアドレス(私が行った)、cpuidマザーボードのシリアル番号とハードドライブのシリアル番号を取得するJavaアプレットを書き込もうとしています。私はこれを行うためにjnaを使用する必要があることを知っています。私の質問は、プラットフォームに依存しない情報を取得する方法がc / c++にあるかどうかです。私が見たものはすべてWindowsでのみ機能し、すべてのプラットフォームで機能する必要があります。そのコンピューターの一意のIDを作成できるように、この情報が必要です。どんな助けや正しい方向へのポイントも大歓迎です。

0 投票する
0 に答える
750 参照

java - スクリーン キャプチャの非アクティブ ウィンドウ

遮られたウィンドウを前面に移動せずに画像コンテンツを取得することはできますか? また、そのようなウィンドウの特定の場所にマウス クリックを送信することは可能ですか? これを Java で実行し、JNA を使用して Windows XP を実行したいと考えています (可能であれば、Windows 7 でも動作しますか?)。私はまだ JNA を扱ったことがないので、それが可能であれば、どのような関数が必要になるか、またそれについてどこで読めるか教えていただけませんか。ありがとうございました。

0 投票する
3 に答える
3180 参照

java - java.util.DateオブジェクトをWindowsFILETIME構造に変換します

Javaアプリケーションがあり、JNAを使用してWindowsDLLを呼び出す必要があります。私が呼び出す必要のある関数は実際に__int64(内部的にこれを構造の低い部分/高い部分に分割します)を取りFILETIMEます。オブジェクトが与えられたjava.util.Date場合、どうすればそれを?用にフォーマットされた適切な値に変換できます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 マウスフックの動作例

Java Swing アプリケーションの外側でマウスの動き/クリックを追跡できる JNA マウスフックの実際の例を教えてもらえますか?

前もって感謝します

0 投票する
2 に答える
2526 参照

java - Windows上のJava:ファイルを削除してゴミ箱に移動する方法(JNAを使用)

私はWindowsAPIの経験がまったくないので、無知なことを許してください。

ゴミ箱にファイルを削除したい。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 構造体があります。

これを予想どおりにマッピングしました:

If I use this version, I get every second character of the string into my char[] ("aits D" for "Macintosh HD".) I am assuming that this is something to do with being on a 64-bit platform and JNA mapping the value to a 32-bit wchar_t but then chopping off the high 16 bits on each wchar_t on copying them back.

If I use the byte[] version, I get data which decodes correctly using the UTF-16LE charset.

If I use the UInt16[] version, I get the right code point for each character but it is then inconvenient to convert them back into a string.

Is there some way I can define my type as char[], and yet have it convert correctly?

0 投票する
1 に答える
4044 参照

java - Aero (DWM) 効果を適切に表示するために、JFrame での背景描画を無効にします。

Java ウィンドウで Windows Vista/7 の DWM 機能を使用すると問題が発生します。フレームの背景に Aero スタイルを使用したいと考えています。DwmExtendFrameIntoClientAreaそのための Windows APIは、dwmapiライブラリ内の関数によって提供されます。私は JNA を介して適切にプロシージャを呼び出すことができました。それは本来の動作を実行します (たとえば、フレームのサイズを変更すると、次の再ペイントの前に、まだペイントされていない領域に適切なエアロ エフェクトが表示されることがわかります。添付画像をご覧ください)。

しかし、どこか (どこかわかりません) で、Aero 効果の上に背景がペイントされ、効果が失われます。

私がすでに試したこと:

  • ContentPane不透明度を設定してカスタムを使用するfalse
  • LayeredPaneとの不透明度RootPaneを falseに設定する
  • a のFrame代わりに aを使用するJFrame
  • 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のホームページから入手できます。