2017-03-07 16 views
0

私のJavaプログラムでは、Outlook.exeのプロセスを作成し、事前に入力された内容のメッセージを送信します。メッセージを送信したり、メッセージウィンドウを閉じると、ユーザーがメッセージを送信したかどうかを知る必要があります。どちらの場合もexitValueが0ユーザーがJavaコードからビルドしたMS Outlookメッセージを送信したかどうかを確認するにはどうすればよいですか?

であるため、プロセスのJavaコードexitValue()メソッドで

は、私は何ができるの助けにはなりませんか?

ProcessBuilder processBuilder = new ProcessBuilder(); 
Process process = processBuilder.command("C:\\Program Files(x86)\\Microsoft Office\\Office15\\OUTLOOK.exe", "/a").start(); 
if (process.exitValue() == 0) { 
    Session session = sessionExtracting(); 
    session.beginTransaction(); 
    SQLQuery query = session.createSQLQuery("UPDATE mailorder set mailordstatus = 2"); 
    query.executeUpdate(); 
    session.close(); 
} 
+2

...免責事項、私はどちらか使用したことがない - Googleがそこに商用jni4netようJNBridgeまたは無料のもののようなソリューションがどちらかであることを私に言いました。電子メールはプレーンテキストです。マシンや人間が電子メールを作成したかどうかを知ることはできません。私たちはプログラミングの質問にあなたを助けることはできません。 –

答えて

1

残念ながら、Microsoftアプリケーションの動作方法ではありません。 Unixの世界では、コマンドの起動と戻りコードのテストが一般的です。しかし、Windowsでは、DDE(現在のレガシー)、COM/DCOM、.NETなどのMicrosoftの特定の自動化システムを自動化が使用することが期待されています。最後の2つは、制御プログラムがアプリケーションを管理する方法を知っているオブジェクトを作成することを可能にします。 COMまたは.NETを使用するのはVisualBasicでは簡単で、C#で簡単(.NET用)で、C++で可能です。 PowerShellでは、.NETインターフェイスを介してアプリケーションを制御することもできます。だからここ

は、あなたのオプションは次のとおりです。

  • は、Outlook を経由してメールを送信し、リターンコードを設定するプログラムを作成するために、Microsoftの言語またはPowerShellスクリプトを使用し、そしてからそのプロキシプログラムを開始しますJava
  • .NETブリッジを使用してOutlookを制御するクラスを作成します。プログラム自体が不可能ですしたいメールに識別措置を追加しない限り
関連する問題