c#控制台应用如何最小化到托盘
时间: 2024-02-02 11:04:29 浏览: 221
要将 C# 控制台应用最小化到托盘,需要使用 NotifyIcon 类。这个类可以在系统托盘区域中显示一个图标,并提供与该图标相关的上下文菜单和事件。下面是一个示例代码:
```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
class Program
{
static NotifyIcon notifyIcon;
static void Main(string[] args)
{
// 创建一个 NotifyIcon 对象
notifyIcon = new NotifyIcon();
notifyIcon.Icon = new Icon("icon.ico");
notifyIcon.Text = "控制台应用程序";
// 添加右键菜单
ContextMenu menu = new ContextMenu();
menu.MenuItems.Add(new MenuItem("退出", OnExit));
notifyIcon.ContextMenu = menu;
// 显示 NotifyIcon
notifyIcon.Visible = true;
// 等待用户输入
Console.ReadLine();
// 隐藏控制台窗口
IntPtr hWnd = NativeMethods.GetConsoleWindow();
NativeMethods.ShowWindow(hWnd, NativeMethods.SW_HIDE);
// 显示 NotifyIcon 提示
notifyIcon.ShowBalloonTip(1000, "控制台应用程序", "已最小化到托盘。", ToolTipIcon.Info);
}
static void OnExit(object sender, EventArgs e)
{
// 退出应用程序
notifyIcon.Visible = false;
Environment.Exit(0);
}
}
class NativeMethods
{
public const int SW_HIDE = 0;
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
public static extern IntPtr GetConsoleWindow();
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
}
```
在这个示例代码中,我们创建了一个 NotifyIcon 对象,并设置它的图标和文本。我们还添加了一个右键菜单,当用户选择“退出”时,调用 OnExit 方法退出应用程序。
在控制台应用程序等待用户输入后,我们使用 NativeMethods.ShowWindow 将控制台窗口隐藏,并调用 notifyIcon.ShowBalloonTip 方法显示一个提示。这样,控制台应用程序就会最小化到托盘了。
阅读全文