在Windows上使用可执行文件的恐怖

时间:2011-04-10 21:31:47

标签: php apache exec executable

我通过exec运行一个名为 Test.exe 的可执行文件,后者依次运行Outlook。

我可以运行Test.exe,但我收到错误:

Windows事件查看器中的

Rejected Safe Mode action : Microsoft Office Outlook.

如果我自己通过DOS运行Test.exe,它工作正常,没有错误。所以它与PHP如何运行这个exectuable有关。我已经启用了apache作为管理员帐户运行,但同样的事情发生了。

我还应该做些什么来让Apache可以毫无问题地运行可执行文件?

3 个答案:

答案 0 :(得分:2)

它可以从命令行运行,但不能从Apache进程运行。毫不奇怪,因为Apache可能作为服务运行,具有系统帐户(非桌面交互式)。

如果您将服务重新配置为以具有本地登录权限的用户身份运行并将服务标记为“与桌面交互”,我希望您可以执行此操作。

然而,我完全不知道为什么有人想要从网络服务器应用程序启动Outlook ....

答案 1 :(得分:0)

Sehe是对的(但出于某种原因,我无法评论他的帖子,无论如何......)。通常,您应该使用特定的OLE接口通过外部代码访问MS Office工具。您从不使用CreateProcess从程序启动Outlook或Word,这将是没有意义的,因为如何在启动后控制它?

我建议你检查一下你是否真的需要这个,如果有更干净的方法可以做到这一点。您可以尝试创建一个外部C#/ VB.NET可执行文件,它可以执行您可能需要使用Microsoft Outlook进行的所有自动化。

实际情况是什么?

并且,我不喜欢纠正别人,但如果我不这样做,将来会有其他人,这会很烦人。在Windows下使用提示时,不要说“通过DOS”。 :d

答案 2 :(得分:0)

如果有人愿意这样做,我也会感到困惑。

如果您真的想要这样做,我猜您可以将其作为“启动test.exe”运行或编写一个运行它的批处理文件。基本上任何会导致不同进程成为实际启动应用程序的进程。