如何在asp页面中调用.exe

时间:2016-05-19 09:31:05

标签: asp-classic

我有一个asp页面:1。写一个txt文件和2on:我需要调用一个.exe文件来解析txt。

第一。点工作正常,但2on。不起作用。我试图得到一个简单的asp页面,它调用notepad.exe或calc.exe但没有得到它。

我的第一点代码:

<%@ Page Language="VB" Debug="true" %>
<script  runat="server">

Sub Page_Load

dim fs,f,fname,fsurname,femail,fid,fpass

fname=Request.Form("name")
fsurname=Request.Form("surname")
femail=Request.Form("email")
fid=Request.Form("id")
fpass=Request.Form("pass")

fs=Server.CreateObject("Scripting.FileSystemObject")
f=fs.CreateTextFile("C:\inetpub\wwwroot\registre-icgc\testb.csv",true)
f.writeLine("Username;Password;FirstName;LastName;Email;Status;Privileges")
f.write(fid+";"+fpass+";"+fname+";"+fsurname+";"+femail+";"+"Active;User")
f.close
f=nothing
fs=nothing
End Sub

</script>
<!DOCTYPE html>
<html>
<body>
<h3>OK</h3>
</body>
</html>

我的测试代码是2on。点(3个选项不好):

<%@ Page Language="VB" Debug="true" %>

<script  runat="server">
Sub Page_Load

'1st test
    Dim objShell = CreateObject("Wscript.Shell")
    objshell.Run("C:\Windows\System32\notepad.exe")

'2on test
    ProcessStartInfo info = new ProcessStartInfo("C:\Windows\System32\notepad.exe");

'3rd test
Process process = new Process();
process.StartInfo.FileName = "notepad.exe";
process.StartInfo.Arguments = "if any";
process.Start();

End Sub

</script>

<!DOCTYPE html>
<html>
<body>
<h3>OK</h3>
</body>
</html>

任何帮助都会被贬低。

托尼

2 个答案:

答案 0 :(得分:1)

首先,经典的asp是服务器端脚本语言并在IIS中运行。所以,它只能在后台执行.exe文件。

其次,我对你编写的代码做了一些修改,如下所示:

  <%
Sub Page_Load

'1st test
    Dim objShell : Set objShell = Server.CreateObject("Wscript.Shell")
    objshell.Run("C:\Windows\System32\notepad.exe")

End Sub

%>

<!DOCTYPE html>
<html>
<body>
<% Page_Load %>
<h3>OK</h3>
</body>
</html>

请尝试使用此方法执行您自己的.exe文件。希望同样可以正常工作:)。

答案 1 :(得分:0)

最后我得到了一个解决方案:

<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.ComponentModel" %>

<script  runat="server">

Sub Page_Load
Dim myProcess As New Process()

myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.FileName = "C:\path\to\my\file.exe"
myProcess.StartInfo.CreateNoWindow = True
myProcess.Start()

End Sub

</script>

<!DOCTYPE html>
<html>
<body>
<h3>EXECUTED</h3>
</body>
</html>

问题是缺少进口!!