using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace WebApplication3
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Button Button1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e);

private string RunCmd(string strCmd)
{
string rInfo;
try
{
Process myProcess = new Process();
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("cmd.exe");
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
myProcess.StartInfo = myProcessStartInfo;
myProcessStartInfo.Arguments = "/c " + strCmd;
myProcess.Start();
StreamReader myStreamReader = myProcess.StandardOutput;
rInfo = myStreamReader.ReadToEnd();
myProcess.Close();
rInfo = strCmd +"\r\n"+ rInfo;
return rInfo;
}
catch(Exception ex)
{
return ex.Message;
}
 
}
}
}
F:\x_asedo\WebApplication3\WebForm1.aspx.cs(49): “WebApplication3.WebForm1.Button1_Click(object, System.EventArgs)”必须声明主体,因为它未标记为 abstract 或 extern郁闷死了,大家看下吧,有什么啥好办法,cmd执行命令的项目
调试失败不知道怎么办了。诶。。界面就一个文本框一个button

解决方案 »

  1.   

    private void Button1_Click(object sender, System.EventArgs e);的函数体呢?private void Button1_Click(object sender, System.EventArgs e){
       this.RunCmd();
    }
    我想你大概是这个意思吧。
      

  2.   

    private void Button1_Click(object sender, System.EventArgs e){   }
    没有函数体,我想你可能是想点击了button后调用RunCmd()吧,所以应该在Button1_Click调用。
      

  3.   

    把这一行private void Button1_Click(object sender, System.EventArgs e);
    换成这一段(执行dir命令):
    private void Button1_Click(object sender, System.EventArgs e){
       this.RunCmd("dir");
    }
      

  4.   

    private void Button1_Click(object sender, System.EventArgs e);多一个;
      

  5.   

    RunCmd函数好像没有在哪里调用么。还有就是像楼上说的一样多一个”;“
      

  6.   

    找到一个学习Asp.Net的资料
    http://218.27.204.17/aspnet/a_user.aspx
      

  7.   

    你好像少了个引用:
    using System.Diagnostics;
    不加编译通不过。然后把你的Button1_Click改为下面这个样子,可以在页面上看到结果。
    private void Button1_Click(object sender, System.EventArgs e) {
    Response.Write(this.RunCmd("dir"));
    }
    结果示例:
    dir 驱动器 D 中的卷是 System 卷的序列号是 F07E-F984 D:\WINNT\system32 的目录 2005-02-17 08:51 
    . 2005-02-17 08:51 
    .. 2002-03-26 00:26 328 $winnt$.inf 2001-06-27 13:47 2,151 12520437.cpx........
      

  8.   

    把这一行private void Button1_Click(object sender, System.EventArgs e);
    换成这一段(执行dir命令):
    private void Button1_Click(object sender, System.EventArgs e){
       this.RunCmd("dir");
    }
    我照做了,还是不行,那个分号我也改了,不行。。错误始终是一样的一个
    “WebApplication3.WebForm1.Button1_Click(object, System.EventArgs)”必须声明主体,因为它未标记为 abstract 或 extern
      

  9.   

    我的界面是一个命令按钮和一个文本框,输入dir之类的命令后点击按钮,执行命令后返回结果里面用到了流诶在visual studio里真麻烦啊继续等待指点
      

  10.   

    呵呵。我上班的时候不能qq呀。sorry。这样我把我的源码贴出来。
      

  11.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Diagnostics;  //这个引用要加
    namespace WebAppCSharpt
    {
    /// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Button Button1;
    protected System.Web.UI.WebControls.TextBox TextBox1;

    private void Page_Load(object sender, System.EventArgs e){
    } /// <summary>
    /// certificate test
    /// </summary>

    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void Button1_Click(object sender, System.EventArgs e) {
    string cmd = this.TextBox1.Text ;
    if (cmd==null||cmd.Length==0)
    return;
    //输出执行命令的结果
    Response.Write(this.RunCmd(cmd));
    }

    private string RunCmd(string strCmd) {
    string rInfo;
    try {
    Process myProcess = new Process();
    ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("cmd.exe");
    myProcessStartInfo.UseShellExecute = false;
    myProcessStartInfo.RedirectStandardOutput = true;
    myProcess.StartInfo = myProcessStartInfo;
    myProcessStartInfo.Arguments = "/c " + strCmd;
    myProcess.Start();
    StreamReader myStreamReader = myProcess.StandardOutput;
    rInfo = myStreamReader.ReadToEnd();
    myProcess.Close();
    rInfo = strCmd +"\r\n"+ rInfo;
    return rInfo;
    }
    catch(Exception ex) {
    return ex.Message;
    }
     
    }


    }
    }
      

  12.   

    sorry,少了一个using System.IO的引用。
      

  13.   

    toilingchen(努力学习ing)
    佩服你,等下给你加分。调试成功了,不过。
    试图运行项目时出错。无法在web服务器上启动调试。。您不具备调试此应用程序的权限。此项目的url位于internet区域
      

  14.   

    private void Cmd(string strExec)
    {
    string rl;
    Process p=new Process(); p.StartInfo.FileName = "cmd.exe";
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.WorkingDirectory="c:\\";
    p.StartInfo.RedirectStandardInput = true;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.RedirectStandardError = true;
    p.StartInfo.CreateNoWindow = true;
    p.Start(); p.StandardInput.WriteLine(strExec);

    p.StandardInput.WriteLine("exit"); while((rl=p.StandardOutput.ReadLine())!=null)
    {
    Response.Write(p.StandardOutput.ReadLine());
    }
    }把要执行的命令传进来就可以了,但是现在执行完不退出就有问题,必须执行一个命令退出一次,而且像ping这样的命令就打印不出来,建议最好把要执行的命令一行写完,执行一次。因为退出以后再执行的命令还是在默认目录下的。
      

  15.   

    check this:
    http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vsdebug/html/vxurferrorurlisininternetzone.asp
    有问题多查msdn
      

  16.   

    我给分了,csdn程序说什么什么错误帖显示给结了,分不知道你们得到没有啊