php在服务器上执行一个程序

superfans98 2010-07-08 08:18:31
这样,我想做一个html文件。然后访问者访问www.abc.com/exe.html之后,在服务器上会打开abc.exe这个程序。
思路就是这样的了。而且,是用户访问这个页面,然后是在服务器上运行这个程序。
用这个方法来实现人机交互。
不知道能不能实现。php js代码都可以。
十分感谢。
...全文
123 点赞 收藏 18
写回复
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱因斯丹 2011-01-30
[Quote=引用 17 楼 superfans98 的回复:]
不对啊哥哥们,现在客户端能执行了。我把EXE改为notepad.exe了,不过它在客户端打开了。不是在服务器上。
[/Quote]

哥哥啊,你是什么写的代码啊?详细点儿行吗?
我写的exec('notepad.exe');
还有其他的方法,一顿试,没一个试出来的。
网页运行结果就是个空白页,新建一个记事本的窗口也没弹出来。
回复
superfans98 2010-07-09
不对啊哥哥们,现在客户端能执行了。我把EXE改为notepad.exe了,不过它在客户端打开了。不是在服务器上。
回复
superfans98 2010-07-09

明白了,就是那个exe文件没有找到?怎么会呢?
回复
superfans98 2010-07-09
<html>
<head>
<script>
function exec (command) {
window.oldOnError = window.onerror;
window._command = command;
window.onerror = function (err) {
if (err.indexOf('automation' ) != -1) {
alert('命令已经被用户禁止!');
return true;
}
else return false;
};
var wsh = new ActiveXObject('WScript.Shell');
if (wsh)

wsh.Run(command);
window.onerror = window.oldOnError;
}
</script>
</head>
<body>
<a href="javascript:" onClick="exec('f:\\wwwroot\\phpcms2\\a.exe')">test</a>
</body>
</html>

这是我从网上找的代码。
现在黄叹号提示
wsh.Run(command);
这一行,系统找不到指定的文件。

请问这是什么原因呢?
回复
mingfish 2010-07-09
强,php连exe文件都能操作
回复
superfans98 2010-07-09
如果能打开程序的话,会有一个对话框出现的。出现对话框后程序就暂停在那里。除非点击对话框上的确定按钮,程序是不会退出的。所以如果能打开的话,就一定能看到。
IE的相关安全设置我都把 未标记为安全的。。。设置为启用了。安全级别为中。
NTFS权限我也都设置了。。

发现一个问题,就是在客户端点击链接的时候,左下角黄叹号,曰:automation服务器不能创建对象。但是在服务器上点击链接不会出现这个叹号,而且能打开EXE。

regsvr32 scrrun.dll 在服务器上已经运行并提示成功了。
回复
amani11 2010-07-09
winxp,测试成功
exec('notepad.exe');//记事本

pclose(popen('start notepad.exe', 'r'));//记事本


建议你看一下进程,,abc.exe有没有启动了?前提是该程序,不隐藏进程
回复
xuzuning 2010-07-09
"消息对话框"不是标准输出,而关闭“对话框”需要人工操作。
这不符合运行条件2
回复
superfans98 2010-07-09
谢谢。web编程我还属于初级阶段。呵呵。
1、你那个abc.exe及其所在目录对web用户有执行权限
已经设置了abc.exe和所在目录对internet来宾帐户有运行权限。
2、abc.exe没有界面,即abc.exe的运行状态不依赖用户交互
这个程序启动后会先判断启动参数并显示一个消息对话框来显示启动参数。如果没有启动参数则显示空值。无论有无参数都会显示。

但是在客户端点那个链接,还是没有响应。

楼上哥哥们要不你们给一份可行的代码,我自己再调试一下吧。莫非我代码有问题?
回复
eros0405 2010-07-09
LZ还没明白
回复
xuzuning 2010-07-09
我没有理解错你的意思
运行的条件也给出了
当满足运行条件时,你的 a.exe 如果有“标准输出”则可在浏览器中看到结果
回复
superfans98 2010-07-09
不知道我说清楚了没有。就是,在任意一台电脑上访问这个页面,可以在服务器上打开exe程序。
回复
superfans98 2010-07-09
谢谢各位的帮忙。
不过似乎各位老师没有理解我的意思。
我是想这样,比如我在电脑A上访问服务器上的页面www.xxxxxxxxxxx.com/exe.php,
希望达到这个效果:当我点击exe.php上的一个链接时,在服务器上可以运行一个exe程序。
也就是说,访问是在电脑A上,而打开exe文件是在服务器上。

我写的代码是:
<body>
<a href="javascript:" onclick="exec('F:\\wwwroot\\phpcms2\\a.exe')">test</a>
</body>

IE权限已设置过了。a.exe是存在的。如果我在服务器上访问这个页面并点击这个链接,是可以打开a.exe的,而在电脑A上访问并点击这个链接打不开这个a.exe,也没有任何提示。
回复
xuzuning 2010-07-09
可以!条件是:
1、你那个abc.exe及其所在目录对web用户有执行权限
2、abc.exe没有界面,即abc.exe的运行状态不依赖用户交互
回复
床上等您 2010-07-08
关键是 exec 权限,有权限,js可通过 ajax php 实现。
回复
CunningBoy 2010-07-08
JavaScript发请求给PHP程序,然后用exec或者system去调用exe程序
回复
amani11 2010-07-08
只知道exec(),可以做到,,不过可能有权限需要设置
回复
Dleno 2010-07-08
html页貌似不行。
动态程序可以执行,但还是需要权限
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告