gpt4 book ai didi

PHP exec() 命令不会使用 sendkeys 启动 python 脚本

转载 作者:可可西里 更新时间:2023-11-01 10:28:16 33 4
gpt4 key购买 nike

首先注意:抱歉,这太长了。想要彻底。当网上有那么多东西时,我真的很讨厌问一个问题,但是已经搜索了一个星期,我没有什么可展示的。我真的很感激一些帮助。我是一个菜鸟,但我学得很快,并且非常愿意尝试其他语言或任何可能需要的其他语言。

目标:我想要做的是构建一个 Netflix Remote (仅限个人使用),在 php 页面中按下按钮后,通过键盘快捷键(例如:空格键暂停)在服务器(Windows 7 PC 32 位)上控制 Netflix在我的 ipod touch 或安卓手机上。目前 Remote 使用 USBUIRT 控制电视和红外设备没有问题。如果您有任何替代方法(我可以构建,而不是购买)来建议或我可以学习的其他语言可以实现这一点,我很乐意学习。

问题:PHP 的 exec() 和 system() 命令不会启动 python 脚本(也不是用 py2exe 编译的 exe),只需按下 Windows 键(旨在按下服务器上的键,而不是加载 php 页面的机器)。我可以使用 USBUIRT 的 UUTX.exe 通过 exec() 传递参数来毫无问题地控制 IR 设备。但是我的 exe、py 或 pyw 文件都可以工作。我什至尝试调用一个批处理文件,然后启动 python 脚本,但该批处理文件不会启动。页面刷新且未显示任何错误。

尝试:这是一个有效的代码

$exec = exec("c:\\USBUIRT\\UUTX.exe -r3 -fC:\\USBUIRT\\Pronto.txt LED_Off", $results);

这里有一些尝试没有用

$exec = exec("c:\\USBUIRT\\test.py", $results);

$exec = exec("python c:\\USBUIRT\\test.py", $results);

$exec = exec("C:\\python25\\python.exe c:\\USBUIRT\\test.py", $results);

所有这些我都试过,没有双反斜杠,有正斜杠和双正斜杠。我已经停止将它传递给变量 $exec,这没有任何区别。 $结果输出数组字符串(9) "

将 exec() 中的所有内容复制到命令行中可以正常工作。我试过将文件移动到 htdocs 文件夹,更改文件夹权限,并确保我不在 php 的安全模式中。 Var_dump 返回:Array"使用 foreach 循环不提供来自数组的信息。我的 Apache 日志仅显示

[Sat Sep 10 19:54:09 2011] [error] [client 127.0.0.1] 文件不存在:C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/announce

设置:Apache 2.2、python 2.5 和 php 5.3。在 Windows 7 上运行它并且只连接本地网络,没有 vpn 或类似的。给定每个关联的文件夹(python、htdocs、cmd.exe 文件、usbuirt 文件夹)IUSR、管理员、用户和所有具有完全控制权的人,仅用于初始测试(稍后我当然会加强安全性)。 php 的安全模式也关闭了。

注意:我在另一个类似问题上看到的这段代码不起作用:

exec("ping google.com -n 1");

error.log 和事件查看器中都没有错误。把它放在 ob_start() 里面;并使用 ob_get_clean() 获得结果;绝对没有给我任何东西。没有文字或任何东西。我已经尝试了很多,但我已经在这里写了一本小说,所以我只需要边走边回答剩下的问题。如果需要,我将发布完整的 php 源代码或 python 脚本,但它所做的只是导入 sendkeys 并按 Windows 键弹出开始菜单作为基本的视觉测试。我不知道它的权限、我的设置运行方式、我的编码……我只是不知道了。再次抱歉,这太长了,如果你真的回答了,我真的很感谢你花时间阅读所有这些来帮助一个完全陌生的人。

最佳答案

运行脚本的 PHP 服务器很可能以与在 GUI 控制台登录的帐户不同的用户(网络服务)运行。我认为这种设置可能在 XP 下工作,和/或在服务上启用“交互式”字段。但是,我相信在 Vista/7 中它在 security grounds 上被阻止了.细节有点模糊,因为我现在在 Linux 机器前。

解决方案是在运行 netflix 的 session 中手动运行 php,然后重试。如果这不起作用,我曾经用 python 编写了一个简单的客户端/服务器,它接受关键命令并将它们转换为击键。很容易做到。

关于PHP exec() 命令不会使用 sendkeys 启动 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7375924/

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