我想要一个服务器页面,它执行基于C
编译的exe文件exe文件是filew.c生成的filew.exe;
filew.c>
#include <stdio.h>
int main ()
{
FILE * fp;
fp = fopen("test.txt" , "w");
char* testStr = "this is test string";
fwrite(testStr , 1 , sizeof(testStr) , fp);
fclose(fp);
return 0;
}
我尝试过很少的方法来实现这个目标;
首先我尝试使用shellObject
运行Dim shellObj
Set shellObj = Server.CreateObject("WScript.Shell")
shellObj.run "E:\test\filew.exe"
set shellObj = nothing
它不起作用..所以我尝试了这个
Dim shellObj
shellObj = Server.CreateObject("Shell.Application")
shellObj.ShellExecute "E:\test\filew.exe"
Set shellObj = nothing
仍然没有......所以我制作了一个执行exe文件的批处理文件
&的test.bat GT;
dir > e:\test\dir1.txt
E:\test\filew.exe
dir > e:\test\dir2.txt
//第一行和第三行是测试批处理文件是否正确执行
我通过
调用了这个批处理文件Dim shellObj
Set shellObj = Server.CreateObject("WScript.Shell")
shellObj.run "E:\test\test.bat"
set shellObj = nothing
结果是......只创建了dir1.txt和dir2.txt但没有test.txt !!
答案 0 :(得分:1)
Function execStdOut(cmd)
Dim goWSH : Set goWSH = CreateObject( "WScript.Shell" )
Dim aRet: Set aRet = goWSH.exec(cmd)
execStdOut = aRet.StdOut.ReadAll()
End Function
theOutput = execStdOut("c:\runVirus.bat")
response.write "The output is " & theOutput
答案 1 :(得分:0)
您无法从Classic ASP网页运行EXE。此类操作将引发安全性异常,并且不被允许。您必须创建一个DLL接口,该接口假定提升权限(不仅仅是站点访问者)将命令传递给EXE。或者您可以将您的C代码放入DLL中。然后你可以把你的DLL称为......
Set MyDLL = Server.CreateObject("MyDLL.*")