我正在尝试用PHP在windows7中打开视频播放器,但似乎无法实现。它唯一的工作方式是在后台-我可以听到声音,它在进程列表中,但我看不到视频播放器本身。它没有列在任务栏或通知区域中。
我已经尝试过使用exec命令和使用WScript.Shell的COM类。我甚至在命令行前面尝试了start,但仍然一无所获。如果我在cmd.exe中使用相同的代码行,它可以工作,播放器弹出并开始播放,但在php中,它在后台启动或根本不启动。
我使用的代码如下:
exec('start "C:\Program Files\Daum\PotPlayer\PotPlayer.exe" "D:\mov.avi"');
和
`$w =新COM("WScript.Shell");$o = $w->Run('"C:\Program Files\Daum\PotPlayer\PotPlayer.exe“"D:\mov.avi"',1,false);
-编辑--
这经常发生在我身上--就在你搜索了很长一段时间,失去了所有的希望之后,你发布了你的问题。在接下来的10分钟里,你躺下来浏览一下,你就会找到问题的答案。
不管怎样,我把它放到了work.Run -> services.msc上,找到apache服务器服务并选择属性。登录选项卡并选中“允许服务与桌面交互”。重新启动apache,最后一个脚本正常工作。Windows将询问您是否要查看该消息,只需单击“是”即可开始播放视频。在单击返回桌面之前,请确保关闭视频播放器窗口,否则它将继续播放,您必须从任务管理器中停止它。`
发布于 2011-07-21 03:32:43
不要依赖于“允许服务与桌面交互”,因为这可能会导致问题。(实际上,它不是应该在Windows7中被删除吗?)
这对您不起作用的原因是由于会话0隔离。基本上,这些服务与用户在完全不同的空间中运行。进程可以执行,但用户不能直接交互。如果您选中“允许服务交互”框,这将打破这堵墙,但我不会永远指望它。
发布于 2016-01-14 18:52:43
如果您按系统启动web服务器。PHP进程和子进程由“系统”运行,进程在background.Try中手动启动web服务器。
https://stackoverflow.com/questions/6767024
复制相似问题