【发布时间】:2011-11-24 23:35:47
【问题描述】:
我有一个应用程序可以在创建 PDF 后选择打开它们。如果连续生成了两个具有相同名称的报告,如果 acrobat 的第一个副本仍然打开 PDF,则第二次尝试将失败,因此在我编写 PDF 之前,我会检查(使用 FindWindow)以查找具有文档名称的窗口。如果找到一个,我会发出一个 SendMessage WM_Close。
这工作正常,但我正在做一些其他测试,并使用 Word 来“编辑”PDF,使其保持打开状态,这样我就可以测试应用程序在无法写入 PDF 文件时的行为。现在,当我的应用程序尝试关闭窗口时,Word 会弹出一个“你想保存”对话框。如果我单击取消,Word 将保持打开状态,我的应用程序会继续运行,并且我可以测试它在遇到无法写入的文件时的行为是否合理。
一切都好,但它提醒我,如果另一个应用程序弹出一个模式对话框,使用 SendMessage WM_CLOSE 关闭另一个应用程序会阻碍我的应用程序。有没有办法解决这个问题 - 即关闭另一个应用程序的更有力(但不是太有力)的方式?或“关闭并在必要时单击取消”。还是应该使用异步消息?
【问题讨论】:
标签: delphi message sendmessage findwindow