【问题标题】:How to embed Adobe Photoshop in my App如何在我的应用程序中嵌入 Adob​​e Photoshop
【发布时间】:2009-12-29 05:02:14
【问题描述】:

我们正在开发一种软​​件,可以自动执行 Photoshop 中的许多关键活动。

此应用程序面向新手。

在这个应用程序中,我想在我的应用程序窗口中嵌入 Photoshop 的窗口。目前 Photoshop 在自己的窗口中单独运行。

如何让它在我的应用程序窗口中给定空间的特定位置运行?

【问题讨论】:

    标签: delphi vb6 ole


    【解决方案1】:

    怎么样:使用FindWindow 找到Photoshop 的窗口句柄,然后使用SetParent 将其嵌入到您的表单/面板中。您可能还需要最大化和删除 Photoshop 窗口中的边框,有关如何执行此操作的更多详细信息,请参阅 Windows API。

    【讨论】:

    • 已经尝试过了,但只有在 Photoshop 完全加载后才能工作。所以发生的情况是,当我们的软件启动 Photoshop 时,它创建的窗口比我们的软件大,然后它突然从那里消失并出现在我们的软件中。这不是理想的效果。我们希望该软件应该像 MS Office 应用程序一样直接在我们的软件中启动。
    • 好的,您可以尝试添加 SW_HIDE 参数(我假设您使用 ShellExecute 或类似的东西)使 Photoshop 的窗口不可见,然后等待它完成初始化并使用 ShowWindow API 函数使其可见。
    • 已经尝试过了,但是尝试先找到 Photoshop 的可执行文件然后执行会很麻烦。相反,我们使用了一种更简单的方法,可以保证“Set objApp = CreateObject("Photoshop.Application")" 有效。这种方法更简单,而且在我们试用过我们软件的所有 PC 上都不会失败!
    • 为什么很难找到 Photoshop 的可执行文件?你喜欢 COM 方式(我说的是 CreateObject)启动 Photoshop,但你有没有想过 Windows 是如何知道“Photoshop.Application”的?我会给你一个提示 - 请参阅 HKEY_CLASSES_ROOT\Photoshop.Application\CLSID(使用 regedit),有 Photoshop 自动化对象的 GUID,现在导航到 HKEY_CLASSES_ROOT\CLSID\{HERE YOUR GUID}\LocalServer32并查看可执行路径。我不认为这太难了,是吗?
    【解决方案2】:

    我不知道有任何 API 可以让您将 Photoshop 嵌入到另一个应用程序中,而且我认为不存在该 API。但是,为什么您不能使用 ActionScript 或 Photoshop 中的本机插件完成您想要的工作?这几乎完成了相同的事情,只是从不同的方向。

    【讨论】:

    • 我们不能这样做,因为我们想彻底改变用户界面。 Photoshop 的菜单和工具调色板将被隐藏,它只会显示我们软件中的所有菜单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多