2016-05-19 7 views
0

Ich habe eine ASP-Seite, die: 1.. schreibt eine TXT-Datei und 2on: Ich muss eine .exe-Datei aufrufen, um den TXT zu parsen.So rufen Sie .exe innerhalb asp Seite

1. Punkt funktioniert gut, aber 2on. funktioniert nicht. Ich habe versucht, eine einfache Asp-Seite zu erhalten, die notepad.exe oder calc.exe aufruft, aber nicht verstanden hat.

Mein Code der 1. Punkt:

<%@ 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> 

Und 2auf mein Testcode. Punkt (3 Optionen nicht gut):

<%@ 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> 

Jede Hilfe wird geschätzt.

Toni

Antwort

0

Vor allem klassischen ASP ist eine serverseitige Skriptsprache und führen innerhalb IIS. Es kann also nur die .exe-Datei im Hintergrund ausführen.

Zweitens habe ich einige Änderungen im Code, den Sie geschrieben, die sich wie folgt:

<% 
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> 

Bitte versuchen Sie Ihre eigene EXE-Datei auszuführen, indem diese mit. Hoffe, das gleiche wird gut funktionieren :).

+0

Hallo @HardipsinhJadeja, Der Code gibt die folgende Fehlermeldung: „BC30807:‚Let‘und‚Set‘Zuweisungsanweisungen werden nicht mehr unterstützt“ –

0

Endlich habe ich eine Lösung:

<%@ 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> 

Das Problem war, die fehlenden Importe !!

+0

Dies ist nicht klassische asp es ein ASP.NET –

+0

Warum Sie markiert als sind Klassischer ASP ???? –

+0

@HardipsinhJadeja Es tut mir leid, ich bin kein Experte in ASP, ich dachte, dass es klassische Asp, nicht .Net –