2013-03-12 24 views
10

私はシリアルからUSBデバイスを持っており、それらのうちの2つ以上をコンピュータに接続することができます。デバイスが接続されているCOMポートのリストを照会して取得する必要があります。 Windowsデバイスマネージャーでは、現在接続されているデバイスのCOMポート+フレンドリ名を取得できます。このリストは動的です。Windowsデバイスマネージャの情報にJavaからアクセスする方法は?

保存された情報が古く静的で動的ではないため、レジストリdid not workからの読み取り。

Devcon(Microsoftから)は、デバイスが接続されているポートを一覧表示しますが、再配布可能ではないため、自分のアプリケーションで使用することはできません。

任意のアイデアか、好ましくは解決策ですか?

+1

COMポートの読み書き方法は分かっていますか?ここをクリック:http://www.java-samples.com/showtutorial.php?tutorialid=11(javax.commパッケージを使用する)それから、単にあなたが探しているものを見つけるためにすべての港を繰り返すことができますか? – Sebastian

+0

@セバスティアンあなたが質問を慎重に読んでもわかりません。 "...デバイスが接続されているCOMポートの一覧を取得します。" – likejiujitsu

+0

そして私はあなたに良い回避策を教えてくれました – Sebastian

答えて

0

私はJava Native Accessを見ています。これは、純粋なJavaコードからWindows APIへのアクセスを提供します.JNIは処理できません。私はLGPLライセンスについて心配していました。それが商用製品に含めることができるかどうかは、ニュースグループのいくつかの記事が言っていることから、そうすることができます。 数週間後に試してみると、ここに戻ってきます。

+0

あなたはそれをJNAと連携させることができましたか? plsはあなたの経験を共有できますか?私は挿入時にドライブを検出するプログラムを作成しようとしています(ホットスワップ)、JNAが何らかの助けになるかどうか疑問に思っていました。 tnx !! – Martijn

+0

これはWindowsのhttps://www.digitalinferno.com/wiki/Wiki.jsp?page=JNAPrintDevicesでうまく動作します(ライセンスについてはまだ分かりません) – ZiglioUK

1

あなたはこれを試しましたjUSB APIまたはThis example

私はこれがあなたに役立つことを願っています。

+0

リンクをありがとう。私はjusbのサイトに行った。放棄のようだ - 2001年以降の更新はない。第2のリンクはファイルシステム用で、私のものはそうではない。 – likejiujitsu

+0

あなたはまだこれに興味があるようですので、私は自分自身を試してみます。私はあなたにお知らせします.. :) – Patriks

3

わずか数週間前に同様の問題を解決する必要がありました。私はJawin-ProjectにWMI-Queriesを使用するために必要なものすべてを提供しました。すでにかなり古いですが、ドキュメントに従えば魅力的です。いいドイツのウォークスルーはcodegods blogです。

私にとって、それはすべての問題を解決しませんでした(私はターゲットデバイスについて調べるためにいくつかの非常に具体的なことがありました)、私は最終的にWindows APIを組み込んだCでJNI (Java Native Interface)クラスとDLLを作成しました。

これがあなたが検索したものであることを希望します。

+0

ありがとう。どのデバイスが接続されているかについての情報を得るために、Windows APIのどの部分にアクセスしましたか? – likejiujitsu

+0

JNAはより簡単になると思われますが、LGPL https://github.com/twall/jnaです。私はそれが商用製品で使用できるかどうかはわかりません。 – likejiujitsu

+0

2005年、私は別のプロジェクトのためにJawinを見ました。使用するのは難しく、Windows APIと内部の知識を前提としていました。メーリングリストには何の反応も得られず、放棄されたようだ。最後に、Vitaly ShelestのJava-COMブリッジであるNJawinも使用しましたが、これも最終的に放棄されたようです。しかし、このプロジェクトでは、8年後、私はより良い選択肢が必要であると信じています。私にとって、CでDLLを呼び出すJNIは、より良いオプションが失敗した場合に限り、最後の手段です。 – likejiujitsu

関連する問題