【问题标题】:PHP exec causes program to crashPHP exec 导致程序崩溃
【发布时间】:2012-01-02 23:27:29
【问题描述】:

我正在使用一个名为 Do It Again 的程序,它是一个鼠标记录器。我正在尝试从我的 php 脚本中启动它的快捷方式。当我将它作为独立程序运行时,似乎一切都很好,并且没有设置为必须由管理员运行 - 仍然当我从我的 php 页面启动它时,我得到窗口弹出窗口说程序已经崩溃。 “DoItAgain.exe遇到问题需要关闭。给您带来的不便,我们深表歉意。”

不是程序,而是我的代码中的一些东西:

$command= 'C:\\xampp\htdocs\poster\dia\\Monty_20.dia';
exec($command);

我也尝试了以下方法,但弹出窗口错误:“应用程序无法正确启动”

$command= ('START C:\\xampp\\htdocs\\poster\\dia\\Monty_20.dia');

任何帮助将不胜感激。我已经玩了 3 个小时了,我正在拔掉我剩下的一点头发。

【问题讨论】:

    标签: php windows exec


    【解决方案1】:

    尝试将您的命令复制到剪贴板。按 Windows-R 会出现一个运行对话框,在其中粘贴它并单击运行。如果出现同样的错误,则问题与 PHP 或权限有关。

    更有可能的情况是程序无法正常工作。在这种情况下,有 Do It Again 经验的人可能会更有帮助。 (也许是他们的论坛?)


    基于exec docs,它可能有助于重定向输出。

    如果一个程序是用这个函数启动的,为了让它 继续在后台运行,程序的输出必须是 重定向到文件或另一个输出流。不这样做会 导致 PHP 挂起,直到程序执行结束。

    因此您的命令需要将输出重定向到空设备。我不使用 Windows,但我相信它会类似于 C:\path\to\my.exe > NUL

    【讨论】:

    • 试运行,效果很好。我尝试将代码中使用的快捷方式更改为来自其他程序的快捷方式(不是 exe 而是快捷方式),但它崩溃了。
    猜你喜欢
    • 1970-01-01
    • 2011-01-24
    • 2015-06-28
    • 2016-08-28
    • 2012-01-07
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多