C#VS Express 2012控制台应用程序无论如何都会立即关闭



最近,我的兄弟打算恶作剧,我看了这段视频,称为"醉酒PC":https://www.youtube.com/watch?v=48K9EYVSC-M

我有C#的经验,我不难理解代码并编写它。好吧,让我们说出要点。

我的代码运行良好,它可以完成我想要的一切(作为控制台应用程序),但是当我转到我的项目属性并将输出类型更改为" Windows应用程序"并运行它时,它会立即关闭。

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

我尝试添加:Console.Read();if (System.Diagnostics.Debugger.IsAttached) Console.ReadLine();,但这都不可行,它只是立即关闭。如果需要代码,即使它很长,我也会在这里粘贴。

感谢您提前的任何帮助。

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Windows.Forms;
using System.Media;
using System.Drawing;
namespace DrunkPC
{
    class Program
    {
        public static Random _random = new Random();
        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(DrunkKeyboardThread));
            Thread drunkSoundThread = new Thread(new ThreadStart(DrunkSoundThread));
            Thread drunkPopupThread = new Thread(new ThreadStart(DrunkPopupThread));
            drunkMouseThread.Start();
            drunkKeyboardThread.Start();
            drunkSoundThread.Start();
            drunkPopupThread.Start();
            Console.Read();
            drunkMouseThread.Abort();
            drunkKeyboardThread.Abort();
            drunkSoundThread.Abort();
            drunkPopupThread.Abort();
        }
        public static void DrunkMouseThread()
        {
            int moveX = 0;
            int moveY = 0;
            Console.WriteLine("DrunkMouseThread started");
            while (true)
            {
                moveX = _random.Next(20) - 10;
                moveY = _random.Next(20) - 10;
                Cursor.Position = new System.Drawing.Point(Cursor.Position.X + moveX, Cursor.Position.Y + moveY);
                Thread.Sleep(50); 
            }
        }
    }
}

鉴于您有Windows Application作为项目输出,我建议它将主要方法更改为这样的方法:

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()

到最后。它将暂停直到您击中输入。

最新更新