如何使C#程序一直在任务栏中?
我想建立一个键盘程序。
我需要在打开设备时程序将打开并进入任务栏。
另一个问题是,当我有一个具有文本框的外部程序时,如何
当我按下C#键盘中的任意键时,它会出现在这个外部文本框中?
提前谢谢
答案 0 :(得分:6)
它没有在CF中实现,但是NotifyIcon类就是你所追求的。 The SDF implement it Shell_NotifyIcon。它会用到这样的东西:
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);
修改强>
如果您想自己实现此功能,那么首先要使用MessageWindow class API。您需要将句柄传递给{{3}}并处理WM_NOTIFY消息。
答案 1 :(得分:2)
要在Windows-CE中创建系统托盘应用程序,请输入一些代码:
CSystemTray m_TrayIcon; // Member variable of some class
...
// in some member function maybe...
m_TrayIcon.Create(pParentWnd, WM_MY_NOTIFY, "Click here",
hIcon, nTrayIconID);
EG。对于非MFC托盘图标,请执行以下操作:
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);
在此处找到:
http://www.codeproject.com/KB/shell/systemtray.aspx
要在Windows XP或Windows 7 / Vista中创建系统托盘应用程序,请在项目中添加以下代码:
private void Form1_Resize(object sender, System.EventArgs e)
{
if (FormWindowState.Minimized == WindowState)
Hide();
}
这将处理系统托盘点击
private void notifyIcon1_DoubleClick(object sender,
System.EventArgs e)
{
Show();
WindowState = FormWindowState.Normal;
}
此信息可在以下网址找到: