問題タブ [com4j]

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 に答える
512 参照

java - COM インターフェイス iStream が定義されている DLL はどれですか?

私は、Java から COM オブジェクトを呼び出すために com4j を使用しようとしている、Windows および COM プログラミングの完全な初心者です。

Com4j は、「.ocx 、.dll、.exe、および/または .tlb ファイルによく見られる」COM 定義から Java インターフェイスを生成します。ターゲット COM オブジェクトの .ocx ファイルを見つけるのは簡単でしたが、標準インターフェイスの iStream についてはわかりません。

Microsoft のドキュメントには OLE32.DLL ( c:\Windows\Windows32\Ole32.dll ?) が記載されていますが、com4j ジェネレーターもoleviewerもこのファイルを開くことができません。

ヒントはありますか?

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

java - Com4J経由でCOMイベントを受信しないのはなぜですか?

Com4Jを使用してMicrosoftOutlookを操作しています。Com4Jチュートリアルに従ってJavaタイプ定義を生成しました。これは、ユーザーが電子メールを閉じるのを待つコードの例です。

このコードは、ユーザーに電子メールを正常に表示します。残念ながら、"Closed"ユーザーがウィンドウを閉じたときにプログラムが印刷されることはありません。

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

java - COM4jで使用するDirectShowインターフェイスのtypelib識別子を見つけるにはどうすればよいですか?

COM4jを使用して、Windows上のJavaから(FMJまたはJMFフレームワークを経由せずに)Webカメラと対話しようとしています。ただし、インターフェイスを構築するためのDirectShowのtypelib識別子が見つかりません。COM4jサイトでは、OleViewを使用してtypelibを見つけることを推奨していますが、そこでtypelibのリストを調べたところ、DirectShowインターフェイスを提供しているように見えるものを見つけることができませんでした。

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

java - プロンプトが表示されずにcom4j APIを使用してExcelワークブックを保存する方法

自動的に変更されたブックを保存しようとしています。以下に例を示します。

}

上記のコードは ant ファイルから実行され、次のエラーが発生しました。

私は次のことを試しましたが、どれも成功しませんでした:

  1. readOnly パラメータを false に設定する
  2. ignoreReadOnly パラメータを true に設定する
  3. 1と2の両方を行う
  4. saveBeforeExit オブジェクトを save メソッドに渡す

プロンプトを表示せずにブックを保存する方法はありますか? 上記のコードはファイルを開き、エラーなしで数式を計算することに注意してください。

ありがとう

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

java - Java の WIA および com4j で COM オブジェクトを使用する

私はこれが初めてで、Javaアプリケーションでスキャナーと通信することから始めるために、いくつかの記事、例などをお勧めできるかどうか尋ねたいと思いまし
た。直接またはローカルネットワークで接続されたさまざまなスキャナーと通信するモジュールを開発しています.. . 私は WIA と com4j から始めたいと思います..
アドバイスをありがとう :)

編集:このCom4jチュートリアルで、ocxファイルからいくつかのJavaタイプ定義を生成する必要があるという情報にたどり着きました。
私がそれを理解していれば、これらの生成されたクラスは、com4j を使用してスキャナーを取得するためのクライアントになります。しかし、どの ocx/dll ファイルを使用する必要がありますか?
誰でもアイデアがありますか?

更新 1:ライブラリを取得してラッパー クラスを生成することができたので、それは wiaaut.dll (Windows Image Acquisition Automation Library) であり、次に ClassFactory を介して DeviceManager インスタンスを作成しましたが、その中にデバイスがありません.. .
deviceManager がローカル ネットワーク上のスキャナを認識できるようにするにはどうすればよいですか?

更新 2: HP LaserJet 2840 が wi​​n7 64 ビットでネットワークを介してスキャンできないことを発見しました。 ? ありがとう

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

java - MSWordの印刷-com4jを使用したドキュメント

com4jを使用して.docファイルを印刷しようとしています。これは私のコードです:

記録されたWord-Macroとhttp://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.document.printout(v=VS.80).aspxから値を取得しました

しかし、私が得るのは次のエラーだけです:

予期しないエラーがJavaランタイム環境によって検出されました。

EXCEPTION_ACCESS_VIOLATION(0xc0000005)at pc = 0x770f48f9、pid = 3792、tid = 5996

Java VM:Java HotSpot(TM)クライアントVM(11.0-b16混合モード、共有ウィンドウ-x86)問題のあるフレーム:C [OLEAUT32.dll + 0x48f9]

どうすればこれを解決できるのでしょうか?

編集:Com4jがドキュメントを開いているので、前の方法の結果は問題ではないと思いますが、ヒントを提供してくれたDTHに感謝します。

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

java - iTunesDLLを呼び出すJavaコードをCom4jの使用からJacobに変換する

私は現在、Com4jを使用してJavaアプリからiTunesと通信していますが、残念ながら64ビットJavaでは動作せず、動作しないように見えるため、代わりにJacobと呼ばれる代替手段を使用しようとしています。

どちらのライブラリもDLLからJavaクラスを生成するためのツールを提供し、結果のクラスは非常に似ており、ほとんどのコードを変更するのは簡単ですが、サブタイプを見つける方法に失敗しています。

どちらのライブラリもIITPlaylistクラスとIITSUerPlaylistクラスを作成しましたが、com4jのみがqueryInterfaceクラスを提供し、IITUserPlaylistは実際にはIITPlaylistのサブクラスではありません。

また、com4jはisメソッドを提供しますが、jacobは提供しません

誰もがこれらの問題を解決する方法を知っていますか?

編集:ある程度の進歩はありましたが、まだ機能していません。クラスのGUID(中括弧を含む)を取得するQueryInterfaceメソッドがあります。jacobgenを実行したときに作成されるjacobgenlog.txtファイルを見て、GUIDを見つけました。 iTunes実行可能ファイル

次に、これはサブクラスに関連することを意図した別のDispatchオブジェクトを返しますが、Iveが行った単純なキャストは無効です、失敗したステップは何ですか?

is()機能は、種類をチェックすることで置き換えられます

作業中のスパナは、jacobgen getKind()メソッドが新しいインターフェイスを返そうとするため無効なJavaであり、もちろんインターフェイスをインスタンス化できないため、次のように変更する必要がありました。

ITPlayListKindは

IITUserPlaylist内

これは私によるオリジナルのアイデアではありませんでした。私はhttp://dot-totally.co.uk/software/itunescon/からアイデアを得ました。これは、jacobgenによって作成されたiTunesクラスの修正バージョンのようです。多くの場合、jacobgenで生成されたクラスを使用することにしました。

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

java - コントロールで自動化が許可されていない場合 (com4j/jacob)、Java を介して ActiveX メソッドを呼び出す方法は?

Java を介して自動化を許可しない ( IsInvokeAllowedtrue を返すように実装されていない) ActiveX コントロールに統合する必要があります。

これまでのところ、私の研究で COM 統合に最適な Java ライブラリはcom4jjacobです。

自動化が許可されていないコントロールでメソッドを呼び出そうとすると、自動化が機能するコントロールでメソッドを呼び出しているときに致命的なエラー例外が発生します。

(com4j/jacob/other を介して) Java で自動化できない ActiveX オブジェクトのメソッドを呼び出す方法はありますか?

残念ながら、ActiveX オブジェクト ベンダーにコントロールの自動化を有効にするという選択肢はありません。

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

java - COM4J がアクセス違反で JVM をクラッシュさせる

COM4J (20110320) を使用して、Dragon Naturally Speaking 11 とのインターフェイスを試みています。正常に起動し、COM オブジェクトからイベントを取得するなど、COM オブジェクトと対話できます。

ただし、JVM が起動して受信イベントをリッスンすると、JVM は最終的に EXCEPTION_ACCESS_VIOLATION でクラッシュします。このタイミングはかなり不規則で、ほぼ即時から数分かかるものまでさまざまです。

問題のあるフレームとして報告されているものはさまざまで、jvm.dll、oleaut32.dll、および com4j-x86.dll はすべてさまざまなオフセットで発生しています。Java フレームは次のように一貫しています。

Windows 7 Pro SP1 x64、JDK 1.6.0u24 x86 を実行しています。

クラッシュしていない同じ COM オブジェクトを使用して、C# で簡単なテストを実行しました。

洞察を共有できる人はいますか?

乾杯、ダニエル。

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

java - Com4j を使用して QC オブジェクト モデルを操作できない

状況: com4j と Java を使用して QC に接続することに成功しました

ジャバコード:

しかし、オブジェクトからのキャストはできません

これは、スレッド「メイン」の例外で失敗し、java.lang.ClassCastException: $Proxy11キャストできませんtest.ota.ITestFactory

助けてください