2

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

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

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

4

1 回答 1

4

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

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

于 2016-01-05T09:21:39.723 回答