我在客户端电脑上部署了一个项目。是否可以添加快捷键来调用此程序。如何在触发时将其最小化到托盘?(用户仍然可以通过单击托盘中的图标来打开它)是否可以在编程层面做到这一点?
答案1
您无法使用 C# 代码设置热键...如果您想设置任何内容,则您的应用程序需要运行,并且您想使用快捷键触发它运行...当然,这可以在您的应用程序的设置中进行设置...右键单击您的应用程序,设置并找到允许您指定快捷键来启动应用程序的项目。
关于托盘图标的问题。你只需要隐藏你的表单,我假设已经为此构建了一个表单应用程序。
您可以使用以下代码执行此操作:
using System;
using System.Drawing;
using System.Windows.Forms;
namespace MyTrayApp
{
public class SysTrayApp : Form
{
[STAThread]
public static void Main()
{
Application.Run(new SysTrayApp());
}
private NotifyIcon trayIcon;
private ContextMenu trayMenu;
public SysTrayApp()
{
// Create a simple tray menu with only one item.
trayMenu = new ContextMenu();
trayMenu.MenuItems.Add("Exit", OnExit);
// Create a tray icon. In this example we use a
// standard system icon for simplicity, but you
// can of course use your own custom icon too.
trayIcon = new NotifyIcon();
trayIcon.Text = "MyTrayApp";
trayIcon.Icon = new Icon(SystemIcons.Application, 40, 40);
// Add menu to tray icon and show it.
trayIcon.ContextMenu = trayMenu;
trayIcon.Visible = true;
}
protected override void OnLoad(EventArgs e)
{
Visible = false; // Hide form window.
ShowInTaskbar = false; // Remove from taskbar.
base.OnLoad(e);
}
private void OnExit(object sender, EventArgs e)
{
Application.Exit();
}
protected override void Dispose(bool isDisposing)
{
if (isDisposing)
{
// Release the icon resource.
trayIcon.Dispose();
}
base.Dispose(isDisposing);
}
}
}
该代码取自http://alanbondo.wordpress.com/2008/06/22/creating-a-system-tray-app-with-c/非常有效!