c#VS Express 2012控制台应用程序无论发生什么情况都会立即关闭

c#VS Express 2012控制台应用程序无论发生什么情况都会立即关闭,c#,winforms,C#,Winforms,最近,为了恶作剧我的兄弟,我看了一段名为“喝醉的电脑”的视频: 我有c#方面的经验,理解并编写代码对我来说并不难。好吧,让我们开门见山吧 我的代码工作得非常好,它做了我想做的一切(作为一个控制台应用程序),但是当我转到我的项目属性并将输出类型更改为“Windows应用程序”并运行它时,它会立即关闭 看过视频的人都知道,如果将应用程序更改为windows应用程序,则可以隐藏该应用程序 我尝试添加:Console.Read()和if(System.Diagnostics.Debugger.IsAtt

最近,为了恶作剧我的兄弟,我看了一段名为“喝醉的电脑”的视频:

我有c#方面的经验,理解并编写代码对我来说并不难。好吧,让我们开门见山吧

我的代码工作得非常好,它做了我想做的一切(作为一个控制台应用程序),但是当我转到我的项目属性并将输出类型更改为“Windows应用程序”并运行它时,它会立即关闭

看过视频的人都知道,如果将应用程序更改为windows应用程序,则可以隐藏该应用程序

我尝试添加:
Console.Read()
if(System.Diagnostics.Debugger.IsAttached)Console.ReadLine(),但这一切都不起作用,它只是立即关闭。如果需要代码,我会将它粘贴到这里,即使它很长

谢谢你事先的帮助

代码:


鉴于您有
Windows应用程序
作为项目输出,我建议您将main方法更改为以下内容:

static void Main(string[] args)
{
    Console.WriteLine("DrunkPC Prank Application by: Cupid (get pranked bruv)");

    Thread drunkMouseThread = new Thread(new ThreadStart(DrunkMouseThread));
    Thread drunkKeyboardThread = new Thread(new ThreadStart(DrunkMouseThread));
    Thread drunkSoundThread = new Thread(new ThreadStart(DrunkMouseThread));
    Thread drunkPopupThread = new Thread(new ThreadStart(DrunkMouseThread));

    drunkMouseThread.Start();
    drunkKeyboardThread.Start();
    drunkSoundThread.Start();
    drunkPopupThread.Start();

    // this one makes the trick
    while (true)
    {
        Thread.Sleep(100);
    }
}

一旦启动应用程序-没有显示任何窗口,鼠标就会疯狂,直到应用程序被杀死

如果您将
Windows应用程序
作为项目输出,我建议它将主方法更改为类似以下内容:

static void Main(string[] args)
{
    Console.WriteLine("DrunkPC Prank Application by: Cupid (get pranked bruv)");

    Thread drunkMouseThread = new Thread(new ThreadStart(DrunkMouseThread));
    Thread drunkKeyboardThread = new Thread(new ThreadStart(DrunkMouseThread));
    Thread drunkSoundThread = new Thread(new ThreadStart(DrunkMouseThread));
    Thread drunkPopupThread = new Thread(new ThreadStart(DrunkMouseThread));

    drunkMouseThread.Start();
    drunkKeyboardThread.Start();
    drunkSoundThread.Start();
    drunkPopupThread.Start();

    // this one makes the trick
    while (true)
    {
        Thread.Sleep(100);
    }
}
一旦启动应用程序-不显示任何窗口,鼠标就会疯狂,直到应用程序被杀死

添加行:

Console.ReadLine()
到最后。它将暂停,直到您按enter键。

添加行:

Console.ReadLine()

到最后。它将暂停,直到您按enter键。

是的,如果您创建Windows应用程序,它不会附加控制台。如果你想要一个控制台应用程序,为什么要将项目类型更改为“Windows应用程序”?我的错误是,我写得很草率。我确实创建了一个控制台应用程序,但为了隐藏它,所以我弟弟不知道它正在运行,我必须将输出类型更改为“Windows应用程序”。好的。那么“立即关闭”到底是什么意思?我希望它能继续在后台执行。你的代码做什么,停止什么?我自己也试过,用一个小应用程序,每秒只在一个文件中附加一次。。。一直都很好。我建议你贴一张演示这个问题的帖子。我不会坐在YouTube上看一段视频,而代码应该是有问题的。不,我怀疑这与VS Express有关。我认为这更可能是我们看不到的代码中的问题。请注意,我没有要求提供所有的代码-只是一个演示问题的最小(但完整)示例。是的,如果创建Windows应用程序,它不会附加控制台。如果你想要一个控制台应用程序,为什么要将项目类型更改为“Windows应用程序”?我的错误是,我写得很草率。我确实创建了一个控制台应用程序,但为了隐藏它,所以我弟弟不知道它正在运行,我必须将输出类型更改为“Windows应用程序”。好的。那么“立即关闭”到底是什么意思?我希望它能继续在后台执行。你的代码做什么,停止什么?我自己也试过,用一个小应用程序,每秒只在一个文件中附加一次。。。一直都很好。我建议你贴一张演示这个问题的帖子。我不会坐在YouTube上看一段视频,而代码应该是有问题的。不,我怀疑这与VS Express有关。我认为这更可能是我们看不到的代码中的问题。请注意,我并没有要求所有的代码-只是一个最小的(但完整的)示例来演示问题。首先,我要说的是,很抱歉反应太晚。无休止的while循环确实使应用程序保持打开状态,但它现在什么也不做,没有疯狂的移动,等等。@CupidWupid,只是确认一下:您的项目的输出类型是否设置为
Windows应用程序
?否则,先说“对不起,反应太晚”是行不通的。无休止的while循环确实使应用程序保持打开状态,但它现在什么也不做,没有疯狂的移动,等等。@CupidWupid,只是确认一下:您的项目的输出类型是否设置为
Windows应用程序
?否则,当它是一个控制台应用程序时,它将不起作用,但当我将输出类型更改为“Windows应用程序”时,它不起作用。当它是一个控制台应用程序时,它起作用,但当我将输出类型更改为“Windows应用程序”时,它不起作用。