为什么“另存为”对话框会阻止发件人

本文关键字:另存为 对话框 为什么 | 更新日期: 2023-09-27 18:28:57

我的程序的目的是通过记事本菜单中的"另存为"项触发记事本的"另保存为"对话框。

SendMessage(hWndOfNotepad, WM_COMMAND, SaveAsMenuItemId, IntPtr.Zero);
Console.log("Done!");

当运行上面的代码时,记事本的"另存为"对话框出现,控制台将记录"完成!",直到用户单击"保存"按钮。为什么我的程序必须等待?如何避免?

为什么“另存为”对话框会阻止发件人

因为文件对话框是一个模态对话框,所以程序会阻塞。您发送的消息是同步的,因此在完全处理之前不会返回。特别是当模式文件对话框关闭时。

如果你想自动化其他程序,你应该使用平台自动化框架,UI自动化。