首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用envdte引用解析符号“Dte”

无法使用envdte引用解析符号“Dte”
EN

Stack Overflow用户
提问于 2015-09-17 23:41:05
回答 2查看 199关注 0票数 1

我试图检测调试器和我得到错误“不能解决符号'Dte'”,即使与envdte引用。谷歌什么都没给我。谢谢。

代码语言:javascript
复制
using EnvDTE;
namespace test
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            foreach (EnvDTE.Process p in Dte.Debugger.DebuggedProcesses) {
                if (p.ProcessID == spawnedProcess.Id) {

                }
            }
        }
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-18 00:01:14

我需要检测附加的调试器(如Ollydbg)

若要检查进程是否有附加于yo的调试器,可以使用:

如何检查调试器是否附加了

  • CheckRemoteDebuggerPresent适用于任何正在运行的进程,并检测本机调试器。
  • Debugger.IsAttached只对当前进程工作,并且只检测托管调试器。例如,OllyDbg不会被这个检测到。

代码:

代码语言:javascript
复制
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

public class DetectDebugger
{
    [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
    static extern bool CheckRemoteDebuggerPresent(IntPtr hProcess, ref bool isDebuggerPresent);

    public static void Main()
    {
        bool isDebuggerPresent = false;
        CheckRemoteDebuggerPresent(Process.GetCurrentProcess().Handle, ref isDebuggerPresent);

        Console.WriteLine("Debugger Attached: " + isDebuggerPresent);
        Console.ReadLine();
    }
}
票数 0
EN

Stack Overflow用户

发布于 2015-09-17 23:46:48

C#是一种区分大小写的语言。

它的DTE (大写)不是Dtehttps://msdn.microsoft.com/en-us/library/envdte.dte.aspx文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32641660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档