如题!用非API方式最佳

解决方案 »

  1.   

    #if  ( DEBUG  )
                {
                    MessageBox.Show("debug");
                }
                #endif 
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 最新版本:20070212http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  2.   

    private void button1_Click(object sender, EventArgs e)
    {
        #if  ( DEBUG  )
        {
            MessageBox.Show("debug");
        }
        #endif 
    }这只能判断当前是否是Debug版本
    并不能判断是在调试环境下运行程序
    当独立运行的时候上面的 MessageBox.Show("debug"); 照样会执行
      

  3.   

    API中有一个IsDebuggerPresent,但对.Net程序无效
    目前我想到的方法是通过Toolhelp32API遍历进程
    通过当前进程的OwnerProcessID来判断
      

  4.   

    System.Diagnostics.Debugger.IsAttached
      

  5.   

    接受cuitaocrazy给出的方案public bool IsDebugging()
    {
        return Debugger.IsAttached;
    }to feiyun0112:
    收集起来以后回答别人 :)