如何确定用户是否发送了由Java代码构建的MS Outlook消息?

时间:2017-03-07 13:46:24

标签: java outlook

在我的程序中,我创建了Outlook.exe进程并发送带有预先填充的包含的消息。发送消息或关闭消息窗口后,我需要知道用户是否发送了消息。

exitValue()进程方法没有帮助,因为两种情况下的exitValue都是0。

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();
}

1 个答案:

答案 0 :(得分:1)

首先,Outlook是一个单例 - 如果outlook.exe已经运行,启动第二个实例只会将控制转移到第一个实例。其次,您正在对outlook.exe文件位置进行硬编码。

使用Outlook对象模型(使用COM桥接器) - 创建Outlook.Application COM对象的实例,使用Application.CreateItem(0)创建新消息,填充消息属性(主题,正文,收件人等) ,。)并调用MailItem.Send或使用MailItem.Display显示消息并捕获MailItem.Send事件。

相关问题