从PHP中运行Windows程序



当我点击网站上的链接时,我想打开一个Windows程序(例如notepad.exe(。我尝试使用php命令shell_exec((和exec((,但两者都无法打开Windows程序。这是不起作用的代码:

$command = "c:\windows\system32\notepad.exe";
echo shell_exec("$command");

在过去,我一直在使用类似的代码来备份数据库:

$command = "d:\xamppmysqlbinmysqldump --opt -h $hostname -u $username $db > $backup_file";
echo shell_exec("$command");

此代码按预期工作(备份已创建(。

我怀疑mysqldump是在后台运行的,而notepad.exe不是。这个问题有解决办法吗?

PHP通常作为服务运行。在这种模式下,在窗口下,事情受到限制。从几年前开始,甚至连一台控制台都没有连接上。无法进行桌面交互。

从服务启动的任何内容都有相同的限制。

以上是我的经验。PHP中的@Goat证实了这一点——有机会通过exec((运行GUI程序吗?

进一步

重要

从Windows Vista开始,服务无法直接与用户交互。因此,在新代码中不应使用标题为"使用交互式服务"的部分中提到的技术。

交互式服务上的MS文档

最新更新