2016-07-22 4 views
-1

私は自分のC#アプリケーションをバックグラウンドプロセスにしたいと思っています。基本的には、私のアプリケーションをメインマネージャのメインタブから隠したいのです。C#私のアプリケーションをバックグラウンドプロセスにする

+4

からあなたは([Windowsサービス]を探しているhttps://msdn.microsoft.com/en -us/library/d56de412(v = vs.110).aspx)? –

+0

何を試しましたか? – buld0zzr

+0

iveは、タスクマネージャを無効にしようとしましたが、他のコードはタスクマネージャからプロセスを隠すことを試みましたが、これまでのところ何も働いていませんでした。 –

答えて

0

GUIの種類を表示しないでください。プロセスは自動的にGUIのない​​バックグラウンドプロセスです。

WinFormsおよびWPFは、GUIの種類です。 Visual Studioに

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     // Your code... 
    } 
} 

  1. のWinFormsプロジェクトを作成します。ただ、これを使用して作成するには

  2. Form1などの任意のFormクラスを削除します。

  3. プロジェクト設定でスタートアップFormを削除します。

  4. Program.csにアクセスしてください。

  5. Applicationで始まるMainメソッドのすべての行を削除します。

コードをメインメソッドに入れます。

+0

から非表示にしたいのですが、どうすればGUIなしで作れますか? –

+0

コードをメインメソッドに入れてください。どんな種類のGUIも表示させないでください。 –

+0

私はあなたが提供したすべての手順を実行しましたが、ステップ#3で話していることが分かりません –

0

継続的に実行したいバックラウンドプロセスの場合は、Windowsサービスを構築することをお勧めします。

Topshelf projectはこれを本当に簡単にすることができます。 だけnugetパッケージをインストールし、そのようにそれを使用します。

public class TownCrier 
{ 

    readonly Timer _timer; 
    public TownCrier() 
    { 
     _timer = new Timer(1000) {AutoReset = true}; 
     _timer.Elapsed += (sender, eventArgs) => Console.WriteLine("It is {0} and all is well", DateTime.Now); 
    } 

    public void Start() { _timer.Start(); } 
    public void Stop() { _timer.Stop(); } 
} 

public class Program 
{ 
    public static void Main() 
    { 
     HostFactory.Run(x =>         //1 
     { 
      x.Service<TownCrier>(s =>      //2 
      { 
       s.ConstructUsing(name=> new TownCrier());  //3 
       s.WhenStarted(tc => tc.Start());    //4 
       s.WhenStopped(tc => tc.Stop());    //5 
      }); 
      x.RunAsLocalSystem();       //6 

      x.SetDescription("Sample Topshelf Host");  //7 
      x.SetDisplayName("Stuff");      //8 
      x.SetServiceName("Stuff");      //9 
     });             //10 
    } 
} 

をこのコード例がある彼らのquick start guide

関連する問題