2009-06-18 13 views
6

可能性の重複:
Writing a Windows system tray application with .NETC#でフォームなしでアプリケーションを行う方法は?

こんにちは、
私は.NETのアプリケーションをプログラミングしていると私はそれをWindowsのインターフェイスを配置する必要はありません。
私はこれまでApplicationContextクラスを継承していましたが、今は実現できません。

どうすればいいですか?

ありがとうございます!

編集: 通知アイコンで管理されるアプリケーションです。システムクロックの近くにアイコンが表示されますが、フォームは表示されません。私はこれをやっている:

class Sync : ApplicationContext 
{ 
    public Sync() 
    { 
     ... 
    } 
} 

[STAThread] 
static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 
    Application.Run(new Sync()); 
} 
+0

どのようなアプリケーションを開発していますか?コンソールウィンドウ、Windowsサービス、ライブラリ? –

+2

重複していますか? http://stackoverflow.com/questions/995195/writing-a-windows-system-tray-application-with-net – ChrisF

答えて

9

あなたは、コンソールアプリケーションやサービスまたはそのようなものを書くことができます。あなたは正確に何をしたいですか?

19

(時代遅れ今は状態のシステムトレイに質問を編集したことを、参考用左)

あなたは、任意のUI(いなくてもコンソール)なしで、それはサービスなどせずにexeファイルにしたい場合 - Windowsフォームアプリケーションを作成しますが、フォームを表示しないでください! Winformアプリケーションであるという事実は、単にコンソールウィンドウを取得しないことを意味しますが、ユーザーが書き込むUI以外のUIは表示されません。私が何を意味するのか調べるには、Mainメソッド(通常はVSテンプレートのProgram.cs)を見てください。

+0

とても簡単です。フォームを削除し、 'Main()'コードを置き換えてください。ありがとう! – C4u

1

はこちらを参照してください。http://bluehouse.wordpress.com/2006/01/24/how-to-create-a-notify-icon-in-c-without-a-form/

編集:リンクが死ぬ場合にはこの回答へのリンクのコードを追加しました。クレジットはこのコードの著者に渡されます。

using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.Text; 
using System.Windows.Forms; 
using System.ComponentModel; 
using System.Drawing; 

class ControlContainer : IContainer 
{ 
    ComponentCollection _components; 

    public ControlContainer() 
    { 
     _components = new ComponentCollection(new IComponent[] { }); 
    } 

    public void Add(IComponent component) { } 
    public void Add(IComponent component, string Name) { } 
    public void Remove(IComponent component) { } 

    public ComponentCollection Components 
    { 
     get { return _components; } 
    } 

    public void Dispose() 
    { 
     _components = null; 
    } 
} 

class MainEntryClass 
{ 
    static void Main(string[] args) 
    { 
     SomeClass sc = new SomeClass(); 
     Application.Run(); 
    } 
} 

class SomeClass 
{ 
    ControlContainer container = new ControlContainer(); 
    private System.Windows.Forms.NotifyIcon notifyIcon1; 

    public SomeClass() 
    { 
     this.notifyIcon1 = new NotifyIcon(container); 
    } 
} 
関連する問題