gpt4 book ai didi

c++ - MFC 中的 ShellExecute 无法打开 Adob​​e XI

转载 作者:行者123 更新时间:2023-11-28 02:59:12 25 4
gpt4 key购买 nike

注意:我已经看过以下问题,但没有提供任何见解:PDF file does not get open from ShellExecute function in Visual Studio, C++

我和上面问题中的发帖者有同样的问题。

尝试使用 ShellExecute 从 MFC 应用程序打开 PDF 文件。 Win 8 64 位系统上的 Adob​​e XI。

hReturn = ::ShellExecuteA(NULL,"open",sPath,NULL,NULL,SW_SHOWMAXIMIZED);

sPath 是一个 CString,尽管我已经尝试过具有相同结果的替代方法。我还尝试了 SW_SHOWSW_SHOWNORMAL。当我将 HINSTANCE 转换为 int 时,ShellExecute 返回 42。我明白这意味着它打开成功。

事实上,如果我在执行命令时查看任务管理器,Adobe Reader 会在任务管理器中响应打开,但 Adob​​e 窗口永远不会打开。

当我退出应用程序时,Adobe 仍处于打开状态。

如果我尝试打开目标 PDF 文件,操作系统会提示无法打开,因为它已在另一个应用程序中打开。当我在任务管理器中的 Adob​​e Reader 上“结束任务”时,它会释放文件。

如果我随后单击该文件,它将在 Adob​​e Reader 中正常打开。

因此,我由此推断 ShellExecute 正在启动 Adob​​e,它正在获取正确的文件,并且该文件确实是可读的。

我还通过直接引用一个 txt 文件确认了 ShellExecute 正在工作。它在记事本中打开正常。

hReturn = ::ShellExecuteA(NULL,"open","d:\\develop\\readme.txt", NULL, NULL, SW_SHOWMAXIMIZED);

有什么想法吗?

谢谢

最佳答案

尝试禁用“保护模式”

Adobe Reader - Protected Mode

关于c++ - MFC 中的 ShellExecute 无法打开 Adob​​e XI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21263232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com