2010-10-04 6 views
6

comment faire le programme C# qui sera Tout le temps dans la barre des tâches?comment faire le programme qui se trouve dans la barre des tâches windows-CE

Je veux construire un programme de clavier.

J'ai besoin que lorsque j'ouvre l'appareil, le programme s'ouvre et se trouve dans la barre des tâches.

Une autre question est, quand j'ai un programme externe qui a une zone de texte, comment

faire que lorsque j'appuie sur une touche de mon clavier C#, il sera dans cette zone de texte externe?

remercient à l'avance

+0

Par barre des tâches, voulez-vous dire System Tray? Comme pour la barre des tâches http://www.coolnerds.com/XP/Taskbar/xpTaskbar.htm>, un projet de formulaire C# windows s'affichera par défaut dans la barre des tâches de Windows. –

+0

@Michael: Ceci est Windows CE, pas XP. – ctacke

+0

Oui, le demandeur a noté que dans mon poste et je l'ai corrigé .... merci –

Répondre

6

Il est pas implémenté dans les FC, mais la classe NotifyIcon est ce que vous êtes après. The SDF fait implement it. Il serait utilisé quelque chose comme ceci:

m_notifyIcon = new NotifyIcon(); 
m_notifyIcon.Icon = this.Icon; 
m_notifyIcon.Visible = true; 
m_notifyIcon.Click += new EventHandler(m_notifyIcon_Click); 
m_notifyIcon.DoubleClick += new EventHandler(m_notifyIcon_DoubleClick); 

EDIT

Si vous souhaitez implémenter vous-même, le point de départ est avec l'API Shell_NotifyIcon. Vous devrez passer le handle à un MessageWindow class et gérer les messages WM_NOTIFY.

+0

merci pour l'aide, mais y a-t-il un échantillon gratuit? – Gold

+0

SDF Community Edition est libre d'utiliser et de distribuer. Le code ci-dessus l'utilise et est gratuit. Combien plus libre êtes-vous après? – ctacke

+0

Est-il possible de s'adapter pour supprimer une icône laissée par * une autre * application? – AlainD

2

Pour créer un système application de plateau dans Windows CE, a mis un peu de code comme:

CSystemTray m_TrayIcon; // Member variable of some class 

... 
// in some member function maybe... 

m_TrayIcon.Create(pParentWnd, WM_MY_NOTIFY, "Click here", 
        hIcon, nTrayIconID); 

Par exemple. Pour une icône non-MFC, procédez comme suit:

Collapse 
CSystemTray m_TrayIcon; // Member variable of some class 

... 
// in some member function maybe... 

m_TrayIcon.Create(hInstance, NULL, WM_MY_NOTIFY, 
        "Click here", hIcon, nID); 

// Send all menu messages to hMyMainWindow 

m_TrayIcon.SetTargetWnd(hMyMainWindow); 

Comme trouvé ici:

http://www.codeproject.com/KB/shell/systemtray.aspx

Pour créer une application de barre d'état système sous Windows XP ou Windows 7/Vista, mettre un peu de code comme celui-ci dans votre projet:

private void Form1_Resize(object sender, System.EventArgs e) 
{ 
    if (FormWindowState.Minimized == WindowState) 
     Hide(); 
} 

et cela pour gérer le plateau système, cliquez sur

private void notifyIcon1_DoubleClick(object sender, 
            System.EventArgs e) 
{ 
    Show(); 
    WindowState = FormWindowState.Normal; 
} 

Ceci et plus d'informations à l'adresse:

http://www.developer.com/net/net/article.php/3336751/C-Tip-Placing-Your-C-Application-in-the-System-Tray.htm

+0

je travaille sur Windows-CE, est-ce que ça va marcher dessus? – Gold

+0

merci pour l'aide - mais ne fonctionne pas sur Windows-CE – Gold

Questions connexes