小技巧:ASP.NET中编程杀死进程

技巧 os javascript html asp.net
  
    通过ASP.NET可以对一些无用的进程进行远程杀死,下面的代码先列出正在活动的所有进程,然后进行杀死。需要注意的是:这个文件要放在具有Administrator访问权限的虚拟目录下。
    
    以下是C#代码:
    <%@ Page Language="c#" %>
    <HTML>
  
    <HEAD>
    <% @ Import namespace= "System.Diagnostics" %>
    <script language="C#" runat="Server" debug="true">
    void Page_Load(Object Sender, EventArgs e){
    btnKill.Attributes.Add("onclick", "javascript: return confirm('你真的要杀死这个进程吗?');");
    }
    
    private void KillProcess(string processName){
    System.Diagnostics.Process myproc= new System.Diagnostics.Process();
    //得到所有打开的进程
    try{
    foreach (Process thisproc in Process.GetProcessesByName(processName)) {
    if(!thisproc.CloseMainWindow()){
    thisproc.Kill();
    }
    }
    }
    catch(Exception Exc)
    {
    msg.Text+= "杀死" +procname.SelectedItem.Text + "失败!";
    }
    }
    public void btnKill_Click(object sender, System.EventArgs e)
    {
    KillProcess(procname.SelectedItem.Text);
    msg.Text= procname.SelectedItem.Text +" 已经被杀死。";
    }
    
    
    public void btnShow_Click(object sender, System.EventArgs e){
    ArrayList procList =new ArrayList();
    string tempName="";
    int begpos;
    int endpos;
    foreach (Process thisProc in System.Diagnostics.Process.GetProcesses()) {
    tempName=thisProc.ToString();
    begpos = tempName.IndexOf("(")+1;
    endpos= tempName.IndexOf(")");
    tempName=tempName.Substring(begpos,endpos-begpos);
    procList.Add(tempName);
    }
    procname.DataSource=procList;
    procname.DataBind();
    }
    </script>
    </HEAD>
    <body>
    <Basefont Face="Tahoma" />
    <center><h2>ASP.NET 进程杀死器!</h2>
  
    <Table cellspacing=2 cellpadding=2 border=0 BGCOLOR="#fFCC66">
    <form id="frmProc" runat="Server" method="post">
    <TR><TD><ASP:DropDownList id="procname" runat="server" /></TD><TD>
    进程名字</TD></TR>
    <TR><TD>
    <asp:button id="btnKill" Text="杀死进程" runat="server" CausesValidation="False" onclick="btnKill_Click" />
    </TD>
    <TD><asp:button id="btnShow" Text="列出所有进程" runat="server" CausesValidation="False" onclick="btnShow_Click" />
    </TD></TR>
    </TABLE>
    <center><asp:Label id="msg" runat="server"/></center>
    </form>
    </center>
    </body>
    </HTML>
posted @ 2008-01-19 16:44  小罗  阅读(386)  评论(0编辑  收藏  举报