aspx页面通过代码调用cmd来运行注册服务

之前不是写了windows服务吗,需要向系统注册服务,但是我只有ftp权限怎么办,不能远程到桌面。 想了个办法,写了一个aspx页面,通过代码调用cmd来运行。当然,因为服务器安全放的比较开,内网吗~ 下面代码

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CMD.aspx.cs" Inherits="Test_CMD" %>  
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  3. <html xmlns="http://www.w3.org/1999/xhtml" >  
  4. <head runat="server">  
  5. <title>无标题页</title>  
  6. </head>  
  7. <body>  
  8. <form id="form1" runat="server">  
  9. <div>  
  10. <asp:Label ID="Label1" runat="server" Text="目录:"></asp:Label>  
  11. <asp:TextBox ID="TextBox3" runat="server" Width="549px">c:\\</asp:TextBox>  
  12. <br />  
  13. <asp:TextBox ID="TextBox1" runat="server" Height="113px" TextMode="MultiLine" Width="600px"></asp:TextBox>  
  14. <br />  
  15. <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="DO" /><br />  
  16. <asp:TextBox ID="TextBox2" runat="server" Height="150px" TextMode="MultiLine" Width="600px"></asp:TextBox></div>  
  17. </form>  
  18. </body>  
  19. </html>  
  20. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CMD.aspx.cs" Inherits="Test_CMD" %>  
  21. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  22. <html xmlns="http://www.w3.org/1999/xhtml" >  
  23. <head runat="server">  
  24. <title>无标题页</title>  
  25. </head>  
  26. <body>  
  27. <form id="form1" runat="server">  
  28. <div>  
  29. <asp:Label ID="Label1" runat="server" Text="目录:"></asp:Label>  
  30. <asp:TextBox ID="TextBox3" runat="server" Width="549px">c:\\</asp:TextBox>  
  31. <br />  
  32. <asp:TextBox ID="TextBox1" runat="server" Height="113px" TextMode="MultiLine" Width="600px"></asp:TextBox>  
  33. <br />  
  34. <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="DO" /><br />  
  35. <asp:TextBox ID="TextBox2" runat="server" Height="150px" TextMode="MultiLine" Width="600px"></asp:TextBox></div>  
  36. </form>  
  37. </body>  
  38. </html> 

后台

  1. using System.Data; 
  2.         using System.Configuration; 
  3.         using System.Collections; 
  4.         using System.Web; 
  5.         using System.Web.Security; 
  6.         using System.Web.UI; 
  7.         using System.Web.UI.WebControls; 
  8.         using System.Web.UI.WebControls.WebParts; 
  9.         using System.Web.UI.HtmlControls; 
  10.         using System.Diagnostics; 
  11.         using System.IO; 
  12.         using System.Text; 
  13.         public partial class Test_CMD : System.Web.UI.Page 
  14.         { 
  15.         protected void Page_Load(object sender, EventArgs e) 
  16.         { 
  17.         } 
  18.         protected void Button1_Click(object sender, EventArgs e) 
  19.         { 
  20.         TextBox2.Text = Cmd(TextBox1.Text); 
  21.         } 
  22.         private string Cmd(string strExec) 
  23.         { 
  24.         string rl; 
  25.         StringBuilder sb = new StringBuilder(); 
  26.         Process p = new Process(); 
  27.         p.StartInfo.FileName = "cmd.exe"
  28.         p.StartInfo.UseShellExecute = false
  29.         p.StartInfo.WorkingDirectory = TextBox3.Text;//"c:\\"; 
  30.         p.StartInfo.RedirectStandardInput = true
  31.         p.StartInfo.RedirectStandardOutput = true
  32.         p.StartInfo.RedirectStandardError = true
  33.         p.StartInfo.CreateNoWindow = true
  34.         p.Start(); 
  35.         p.StandardInput.WriteLine(strExec); 
  36.         p.StandardInput.WriteLine("exit"); 
  37.         while ((rl = p.StandardOutput.ReadLine()) != null
  38.         { 
  39.         sb.Append(rl + "\r\n"); 
  40.         //Response.Write(p.StandardOutput.ReadLine()); 
  41.         } 
  42.         return sb.ToString(); 
  43.         } 
  44.         } 

路径里面指定cmd中的路径。

因为每次运行完最好都exit一下,所以就不能使用过多命令,干脆直接指定初始时的路径了。

如果不exit得话也可以,但是一定想的关闭cmd,不然服务器当机就挂了。

接下来不需要我说了吧。

轻松搞定。

转载请注明:代码家园 » aspx页面通过代码调用cmd来运行注册服务

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)