相关疑难解决方法(0)

为什么我的命令提示符在Windows 10上冻结?

我花了一整天的时间来解决这个令人难以置信的Windows 10命令提示功能,这让我觉得我的控制台应用程序代码出了问题.我希望它能帮助别人.

问题:我的控制台应用程序似乎随机停止运行.到底是怎么回事?

command-line freeze command-prompt windows-10

109
推荐指数
2
解决办法
3万
查看次数

Windows控制台应用程序陷入困境(需要按键)

我有一个控制台程序,其中包含不同的组件,如下所示:

void start() {
while(true){
     DoSomething();
     Thread.Sleep(1000*5);
}
}
Run Code Online (Sandbox Code Playgroud)

我的主要入口点看起来像[伪代码]

Thread.Start(Componenet1.Start);
Thread.Start(Componenet2.Start);

while(true){
     Console.Writeline("running");
     Thread.Sleep(1000*5);
}
Run Code Online (Sandbox Code Playgroud)

在任何地方都没有Console.Reads.我的问题是SOMETIMES应用程序将运行良好,但然后停止,如果我按下窗口上的任何键它将再次开始工作.这种情况很少发生,但我在100+ VM上部署了这个程序,在自动化环境中全天候运行.

另外在电脑上我有一些AHK脚本和其他操纵鼠标的东西,但不确定它是否与它有任何关系.

另请注意,有时CPU可以在机器上以100%的速度运行,因此可能是线程优先级问题?

SOLUTION:您需要禁用快速编辑模式.这是使用C#代码执行此操作:

 // http://msdn.microsoft.com/en-us/library/ms686033(VS.85).aspx
    [DllImport("kernel32.dll")]
    public static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);

    private const uint ENABLE_EXTENDED_FLAGS = 0x0080;

    static void Main(string[] args)
    {
         IntPtr handle = Process.GetCurrentProcess().MainWindowHandle;
         SetConsoleMode(handle, ENABLE_EXTENDED_FLAGS);
Run Code Online (Sandbox Code Playgroud)

c# automation console-application

35
推荐指数
1
解决办法
6492
查看次数

在Windows 10 cmd.exe中禁用QuickEdit

我最近在天文台的一台重要机器上从Windows XP升级到Windows 10(我早就应该这么做了,我知道......).我注意到在Windows 10中,如果我在Windows命令行(cmd.exe)上运行脚本,我现在可以通过单击终端窗口来中断脚本的运行.

当我点击终端时,标题栏会发生变化,并且标题前面会出现"select"字样.我现在已经多次意外地做了这件事(当重新组织打开的终端时)并且由于一个重要的运行脚本被中断而导致了一连串的错误,并且依赖它的一些事情已经下降了.

通过点击终端中的返回可以取消选择"选择"模式,然后中断的代码继续像以前一样运行.

我想尽可能禁用此功能.有没有遇到过这个?谢谢

windows

16
推荐指数
1
解决办法
6445
查看次数

当用户单击控制台窗口时,代码停止执行

我有一个控制台应用程序,无需用户交互即可执行我的代码.如果用户在控制台窗口内有意或无意地点击,则所有执行都将停止.

这与从控制台窗口复制文本有关.应用程序再次开始执行的唯一方法是,如果用户选择文本,然后右键单击控制台窗口,将其复制到剪贴板.

要查看此操作,请创建一个控制台应用程序并添加以下代码.

class Program
{
    static void Main(string[] args)
    {
        var task = Task.Run(async () =>
        {
            int i = 0;
            while (true)
            {
                Console.WriteLine(i++);
                await Task.Delay(1000);
            }
        });
        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

单击控制台窗口时,任务线程停止执行.这根本不是理想的行为,我想在我的控制台应用程序中防止这种情况发生.

我怎么能阻止这个?据我所知,控制台窗口上的所有属性/事件都与控制此行为无关.

如你所见,当我在窗口内点击时出现光标.当我按任意键 - 光标消失,应用程序继续工作 暂停的应用程序

c# console-application

11
推荐指数
2
解决办法
4294
查看次数

Console.WriteLine( ""); 卡住

有时当我执行上述语句时,程序会在控制台应用程序中冻结.如果我休息,我不能移动到下一行.我需要重置缓冲区吗?

这是一个批处理应用程序,它向屏幕显示消息.有没有人经历过这个并设法解决它.这似乎是一件新鲜事.我正在使用Visual Studio 2017教授版.

WriteLine档位在下面的功能.值为sMessage空白"".

static void Display(string sMessage, DisplayColours eColour = DisplayColours.White)
{
    if (eColour == DisplayColours.Yellow)
        Console.ForegroundColor = ConsoleColor.Yellow;
    if (eColour == DisplayColours.Blue)
        Console.ForegroundColor = ConsoleColor.Cyan;
    if (eColour == DisplayColours.Green)
        Console.ForegroundColor = ConsoleColor.Green;
    if (eColour == DisplayColours.Red)
        Console.ForegroundColor = ConsoleColor.Red;
    if (eColour == DisplayColours.Magenta)
        Console.ForegroundColor = ConsoleColor.Magenta;
    if (oFptr != null)
    {
        oFptr.WriteLine(sMessage);
        oFptr.Flush();
    }
    Console.WriteLine(sMessage);
    Console.ForegroundColor = ConsoleColor.White;
}
Run Code Online (Sandbox Code Playgroud)

c# visual-studio-2017

7
推荐指数
1
解决办法
3056
查看次数

用于禁用快速编辑模式的脚本命令

有谁知道如何从 powershell 脚本中禁用快速编辑模式?这个问题的“答案”不是答案:

在 PowerShell 中以编程方式启用“快速编辑模式”

(虽然可以通过编程方式设置注册表设置,但这样做不会影响当前会话)。

我查看了$host$host.UI$host.UI.RawUI对象,但找不到任何相关内容。

为了让事情更清楚一点,我不想更改注册表。特别是,我不想更改默认行为。事实上,只有一个脚本,而且实际上只有一个脚本分支,我需要在其中禁用快速编辑。所以我需要能够以编程方式禁用它。或者至少,能够使用命令行选项启动 powershell 以禁用快速编辑。

谢谢。

powershell

6
推荐指数
2
解决办法
1万
查看次数

当我在控制台中选择某个区域时,我的 UI 挂起

我将消息记录到控制台。但我有一些有趣的效果。当我在控制台中选择一些消息时,我的 UI 挂起。当我在控制台中取消选择所有内容时,UI 将处于活动状态。我不喜欢这种行为。

有什么解决办法吗?

Console::WriteLine("Message");  
Run Code Online (Sandbox Code Playgroud)

.net console c++-cli

0
推荐指数
1
解决办法
941
查看次数