Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何突破并继续关注Visual Studio 2017中失去的焦点 我得到了C++项目的编辑和继续函数设置,这样我就可以执行一个中断,更改代码,然后继续查看代码的结果。 不过,如果我不必手动单击按钮,那就更好了。我的第一个解决方案是使用1个按键执行一个BreakAll,然后是Continue函数。但是,我没有找到仅使用Visual studio 2017的答案_C++_Visual Studio_Focus_Continue - Fatal编程技术网

如何突破并继续关注Visual Studio 2017中失去的焦点 我得到了C++项目的编辑和继续函数设置,这样我就可以执行一个中断,更改代码,然后继续查看代码的结果。 不过,如果我不必手动单击按钮,那就更好了。我的第一个解决方案是使用1个按键执行一个BreakAll,然后是Continue函数。但是,我没有找到仅使用Visual studio 2017的答案

如何突破并继续关注Visual Studio 2017中失去的焦点 我得到了C++项目的编辑和继续函数设置,这样我就可以执行一个中断,更改代码,然后继续查看代码的结果。 不过,如果我不必手动单击按钮,那就更好了。我的第一个解决方案是使用1个按键执行一个BreakAll,然后是Continue函数。但是,我没有找到仅使用Visual studio 2017的答案,c++,visual-studio,focus,continue,C++,Visual Studio,Focus,Continue,然后我想到了一个更好的主意。如果编译后的exe失去焦点,然后重新获得焦点,使其执行一个BreakAll,然后继续,该怎么办。 或者是一种替代方法,它也可以做到这一点,但更容易实现。是VisualStudio失去焦点的时候(因为我关注的是已编译的exe)。它快速执行一个BreakAll,然后继续。 这样我就可以编写代码并实时执行 我的问题是这样的事情已经存在了吗?我找不到答案。如果没有,是否有人有一个想法,如果这是可能的,使一个扩展?还是有人愿意做?谢谢你的阅读 编辑: 下面是一些伪代码 if c

然后我想到了一个更好的主意。如果编译后的exe失去焦点,然后重新获得焦点,使其执行一个BreakAll,然后继续,该怎么办。 或者是一种替代方法,它也可以做到这一点,但更容易实现。是VisualStudio失去焦点的时候(因为我关注的是已编译的exe)。它快速执行一个BreakAll,然后继续。 这样我就可以编写代码并实时执行

我的问题是这样的事情已经存在了吗?我找不到答案。如果没有,是否有人有一个想法,如果这是可能的,使一个扩展?还是有人愿意做?谢谢你的阅读

编辑: 下面是一些伪代码

if compiled_build_running == true && lost_focus == true {
  Debug.BreakAll
  Debug.Continue
}
编辑2: 好的,我用一些帮助和示例脚本来实现它。现在,当VisualStudio失去焦点时,它会保存并重新编译。当它获得焦点时,打破所有。 以下是修改后的代码:

using EnvDTE;
using EnvDTE80;

public class E : VisualCommanderExt.IExtension
{
    public void SetSite(EnvDTE80.DTE2 DTE_, Microsoft.VisualStudio.Shell.Package package) {
    DTE = DTE_;
    System.Windows.Application.Current.Deactivated += OnDeactivated;
    System.Windows.Application.Current.Activated += OnActivated;
}

public void Close() {
    System.Windows.Application.Current.Deactivated -= OnDeactivated;
    System.Windows.Application.Current.Activated -= OnActivated;
}

private void OnDeactivated(object sender, System.EventArgs e) {
    try {
        DTE.ExecuteCommand("File.SaveAll");
    } catch (System.Exception ex) {
    }
    if (DTE.Mode == vsIDEMode.vsIDEModeDebug) {
        DTE.ExecuteCommand("Debug.Start");
    }
}

private void OnActivated(object sender, System.EventArgs e) {

    if (DTE.Mode == vsIDEMode.vsIDEModeDebug) {
        DTE.ExecuteCommand("Debug.BreakAll");
    }

}

private EnvDTE80.DTE2 DTE;
}

您应该能够使用我的扩展自动完成此任务

关于如何捕获Visual Studio失去焦点事件,请参见

要检查Visual Studio当前是否正在调试,请使用:

if (DTE.Mode == vsIDEMode.vsIDEModeDebug)
要运行内置的Visual Studio命令,请使用:

DTE.ExecuteCommand("Debug.BreakAll");

在应用程序运行时支持C++编辑和继续。因此,对于C++项目,您可以修改代码,点击ALT+F10(“应用代码更改”),它将(覆盖)中断所有,应用您的更改,并继续。