【发布时间】:2009-04-29 05:04:52
【问题描述】:
我们可以覆盖 Adobe Photoshop 的Save As 对话框吗?我们如何覆盖?你的方法是什么?
实际上我想弹出我自己的对话框(将文件保存在服务器上而不询问目标路径位置)而不是 Adobe 的 Save As 对话框。
【问题讨论】:
标签: .net c++ c visual-c++
我们可以覆盖 Adobe Photoshop 的Save As 对话框吗?我们如何覆盖?你的方法是什么?
实际上我想弹出我自己的对话框(将文件保存在服务器上而不询问目标路径位置)而不是 Adobe 的 Save As 对话框。
【问题讨论】:
标签: .net c++ c visual-c++
不,你不能那样做。你为什么需要这个?如果您使用的是 SDK,那么您应该能够使用“Action”对象将文件保存到您想要的任何位置。
【讨论】:
除非有用于 Photoshop 的插件 API 允许这样做,否则您必须在 Photoshop 进程中注入一些代码并挂钩另存为功能。并不是一件容易的事。
【讨论】:
正如@Nick Whaley 建议的那样,您可以挂钩该过程,但您不必疯狂地寻找特定的窗口。你根本不必这样做。您可以挂钩 CreateFile API,而不是使用 Windows 路由,在某处创建一个自定义操作,该操作会尝试将文件保存在预定义(可能不存在)的位置。在您的钩子函数中,使用该文件的特殊路径/名称查找 CreateFile 调用,并显示您自己的保存对话框。调用所需路径的真实打开文件,并将句柄返回给 PS。
您将需要: - MS Detours Express - 大约2小时的时间
PS。为自定义 PS 动作分配一个热键,并使用它来保存文件。
【讨论】:
@Nick Whaley 是对的。我不认为@UselessAdmin 的方式有效,因为要求弹出另一个“另存为”对话框,只有在用户选择一个文件夹并在文件夹对话框中单击“确定”后才会调用 CreateFile,显然挂钩 CreateFile 为时已晚。
【讨论】: