問題タブ [jacob]
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.
java - オブジェクトを共同作成できません/モニカが見つかりません | ジェイコブ
ActiveXComponent
JACOB を使用して作成すると、次のエラーが発生します。
インストール中にDLLを登録しないプログラムから使用する必要があるCOMオブジェクト。
DLL を登録するために、役立つ可能性のあるこの記事に従って、RegAsm の 64 ビット バージョンを使用しました。また、依存関係のロードに「何か」問題があるのではないかと疑ったため、外部プログラムのすべての DLL をロードしようとしました。
これが私の現在のコードです:
名前を clsid に変更すると、別の例外が発生します。
システムの Random オブジェクトを使用した別のテストで、JACOB にコードを操作してもらいました。
java - Java アプリケーションによるローカル Windows 認証、64 ビット
ユーザー名とプレーンテキストのパスワードを指定すると、アプリケーションは現在、Jawin FuncPtr を使用して advapi32.dll の LogonUser 関数にアクセスし、それらの資格情報を持つローカル ユーザーが存在することを確認します。しかし、オンラインで私は現在 Jawin dll の 32 ビット バージョンがないことを確認しました。これは、このアプリケーションを 64 ビット システムに移植する必要があり、64 ビット Java を使用する必要があるため問題です。これらのシステム (私が見た限りでは、DLL が WOW フォルダーに配置されていても、32 ビット DLL にアクセスできません)。Jawin を使用する代わりに、Jacob プロジェクトを使用する方法を見つけようとしています。既に他の場所で使用しているため、64 ビット バージョンがあり、以下を使用して次のことが可能であることに気付きました。ユーザーのグループ情報を取得します (例外ロジックを取り出しました。ユーザー名は以前に渡された文字列です):
したがって、ユーザーのグループ情報を取得できれば、うまくいけば非常に似た方法でユーザーを認証できるはずです。Jawin が使用していた advapi32.dll を使用して新しい ActiveXComponent を作成しようとしましたが、advapi32.dll が有効な COM オブジェクトではないことがわかりました。ローカル認証を処理する COM オブジェクト/プログラム ID (ActiveXComponent 用) を具体的に検索するなど、この投稿のタイトルの同義語の組み合わせをいくつか試しました。これまでのところ、私が見つけたのは次のとおりです。
-現在の資格情報を取得する方法。ただし、アプリケーションの多くの場合、現在のユーザー資格情報は、アプリケーションへのログインに使用される資格情報とは異なります。
- LDAP または同様のプロトコルを介して認証する方法。アプリケーションは、ローカル ユーザー グループにアクセスするためのものであり、Active Directory などはインストールされません。
- システム クラス/JNI を介してライブラリ (advapi32.dll など) をロードする方法。ただし、advapi32.dll からメソッドを呼び出す方法が見つからず、この方法で使用するように設計されていないことは確かです。
私はおそらくグーグル/正しいアイデアにぴったりの言葉を見逃していることを知っているので、どんなガイダンスも役に立ちます. Jacob を使用することは、すでに使用されているため、好みにすぎません。32 ビット システムと 64 ビット システムの両方でアクセスできるより良いものがあれば (これらのアーキテクチャ間であまり変更したくありません)、お知らせください。
また、投稿をどうにかして改善できるかどうかもお気軽にお知らせください。このサイトはよく読んでいますが、初めての投稿です。
java - Windows サービスとして実行している場合、Excel は Java プロセスによって書き込まれたファイルを読み取ることができません
問題を一言で要約するのは簡単ではありません...
Tomcat 7 と Java 6 で実行されている Web アプリがあります。このアプリは JNI と COM を使用する JACOB を使用して Excel シートにアクセスし、別の Excel プロセスを開始します。Excel シートが変更可能であることを確認するために、私の Java プロセスは File.createTempFile() を使用して元の XLS のコピーを作成し、一時ファイルを Excel プロセスに渡します。
OSはWindows Server 2008です。ExcelのバージョンはOffice 2010のものです。
私の問題: Tomcat がコマンド ラインまたは IDE から対話的に起動されている限り、すべて正常に動作します。Tomcat をサービスとして (デフォルトのユーザー SYSTEM で) 起動すると、Excel は次のように言って一時ファイルを開くことができません。
ドイツ語のメッセージは、ファイルが存在しないか、別のプロセスによってロックされているか、何らかの理由で書き込みがロックされているため、Excel がファイルにアクセスできないことを意味します。
ファイルが存在し、読み取り可能な Excel ドキュメントであることを確認しました (Excel を使用して対話的に開くことができます)。
私の推測では、Windows は、信頼していない Java プロセスによって作成されているため、EXCEL サブプロセスのファイルへのアクセスを拒否していると思われます。
Tomcat が Windows サービスとして実行されている場合、Excel にファイルへのアクセスを許可するにはどうすればよいですか?
編集:例外メッセージの英語版
解決策 こちらのリンク で解決策を見つけました。フォルダを作成する必要がありました
手動で。Windows Server 2008 では、Excel は SYSTEM として実行するときにこのフォルダーが必要ですが、存在しない場合は作成されません。
ヒントをありがとう。
java - ジェイコブが Windows XP で iTunes に接続できない
このエラーが発生するユーザーがいます:
Jacob を使用して iTunes と通信しようとすると、このような問題は発生しません。この記事を見つけましたが、64 ビットを使用するという問題はありません (常に 32 ビットの Windows XP を使用しています)。私の顧客のほとんどが Windows 7 または 8 を使用しており、この問題を報告していないため、Windows XP が問題である可能性があると思います。
java - ジェイコブ ライブラリを使用して Outlook の連絡先を削除および更新する
私はジェイコブライブラリを使用しています。jacob ライブラリを使用し、このチュートリアルに従って、Outlook に連絡先を追加できます。ここで、ジェイコブを使用してその連絡先を削除および更新したいと考えています。ジェイコブを使用して Outlook の連絡先を削除する方法はありますか。
このコードを使用して、Outlook に連絡先を追加しています。ここでメールIDは一意のIDです。
java - Jacob は、WMI をサポートするためにリモート コンピュータに接続します
リモート コンピューターに関する WMI 情報を取得するために、java と Jacob を使用してリモート コンピューターに接続しようとしています。
localhost の場合、以下のコードを使用していますが、正常に動作します。
しかし、localhost を別の ip/hostname に変更すると、次のエラーが発生しました。
例外をスローする行は次のとおりです。
編集
を使用してユーザー名/パスワードを渡そうとしましたWbemScripting
しかし、私はこのエラーが発生しました:
どうすれば解決できますか?ユーザー名/パスワードを渡すにはどうすればよいですか?ドメインが必要な場合は???
Windows 8 を使用しており、win8/win7/winxp/win2003server コンピューターに接続しようとしています。
java - JACOBイベント登録
次を使用してスライドショーが開始または終了するたびに、JACOBを使用してコールバックを取得しようとしています:
ただし、私は少し動けなくなっています。上記の結果は次のとおりです。
誰にもアイデアはありますか?検索はかなり短くなりました。の 4 つの引数コンストラクターを使用してDispatchEvents
、最後の 2 つの引数として "Powerpoint.Application" と powerpoint exe へのフル パスを指定してみましたが、違いはありません。
java - java (jacob) を使用して visio ファイルを書き込み/変更する方法
Java を使用して visio ファイルを作成する方法について有用なものを見つけることができず、おそらく Web 上のすべての記事を調べました。C#、vb、およびその他のものでそれを行うことについて多くのことを見つけたが、必要なものを見つけることができなかった場合.
これも見つけましたが、これ (リバース エンジニアリング) で必要なことができるかどうかはわかりません >> MS Visio ダイアグラムを自動的に生成するには? <<。Javaアプリケーションでvsdファイルを作成したいので、大量のデータを(たとえばxmlファイルから)書き込み、後でvisioで開いてそのデータを確認して修正します。
これを見つけるのに時間がかかりました
http://www.java2s.com/Open-Source/Java/Development/jacob-1.15/com/jacob/samples/visio/Catalogvisio.htm << これにより、少なくとも visio ファイルを開くことができました。
しかし、そのファイルに書き込み、後で保存する方法を知る必要があります。
要するに、私の実際の試みは jacob を使用することですが、その com ブリッジで「位置 x、y にブロックを追加する」などの方法がわかりません。そのようなドキュメントはありますか?
任意の助けをいただければ幸いです
ありがとう