2016-06-23 12 views
1

瞬時に閉じていないのC#VSエクスプレス2012コンソールアプリケーションは、私の弟をいたずらする目的で、私はこのビデオは「飲酒PC」と呼ばれる見てきた:https://www.youtube.com/watch?v=48k9eyVsC-M最近どんな

私はC#での経験を持っており、それはありませんでした私がコードを理解してそれを書くのは難しいです。 [OK]をポイントにしましょう。

私のコードは完璧に機能し、コンソールアプリケーションとして(プロジェクトアプリケーションとして)すべてを行いますが、プロジェクトプロパティに移動して出力タイプを「Windowsアプリケーション」に変更して実行すると、即座に終了します。

動画を見たことがある人は、あなたがWindowsアプリケーションに変更するとそのアプリケーションを隠すことができることを知っています。

私は追加しようとしました:Console.Read();if (System.Diagnostics.Debugger.IsAttached) Console.ReadLine();しかし、これは動作しません、ただ瞬時に閉じます。コードが必要な場合は、かなり長くてもここに貼り付けます。

ありがとうございました。

コード:あなたは、プロジェクトの出力としてWindows Applicationを持って考えると

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); 
      } 
     } 
    } 
} 
+1

はい、Windowsアプリケーションを作成しても、コンソールは接続されません。コンソールアプリケーションが必要な場合、なぜプロジェクトタイプを「Windowsアプリケーション」に変更したのですか? –

+0

私の間違い、私はそれを非常にうっすらと書いた。 私はそれをコンソールアプリケーションとして作成しましたが、それを隠すために、私の兄はそれが実行中であることを知らないので、出力タイプを「Windowsアプリケーション」に変更する必要があります。 –

+1

だから、「即座に閉じる」とはどういう意味ですか?私はそれがバックグラウンドで実行を続けると思います。あなたのコードは何をし、何が止まるのですか?私はちょうど1秒に1回ファイルに追加する小さなアプリで、これを自分で試しました...それはうまくいっています。 –

答えて

0

私はこのような何かに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); 
    } 
} 

- 何のウィンドウがありませんアプリが

+0

最初に、遅い応答を申し訳ありません。 無限のwhileループはアプリケーションを開いたままにしましたが、 –

+0

@CupidWupid、あなたのプロジェクトのOutput Typeが 'Windows Application'に設定されていますか?それ以外の場合は動作しません –

0

を殺害されるまで示され、マウスは、行を追加します。クレイジー行く:

Console.ReadLine() 

最後に。 Enterを押すまで一時停止します。

+0

これはコンソールアプリケーションのときに動作しますが、変更すると"Windowsアプリケーション"への出力タイプ、それは動作しません。 –