如何添加热键来触发程序?

如何添加热键来触发程序?

我在客户端电脑上部署了一个项目。是否可以添加快捷键来调用此程序。如何在触发时将其最小化到托盘?(用户仍然可以通过单击托盘中的图标来打开它)是否可以在编程层面做到这一点?

答案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/非常有效!

答案2

您可以使用类似产品自动热键它是免费的并且适合定义热键(和自动拼写检查等)。

对于系统托盘,通常的做法是不要将项目作为表单项目,而是将其作为调用表单的控制台项目。这样,表单只有在从系统托盘上下文菜单调用时才会被使用 - 查看 NotifyIcon - 简单示例这里。另一种(不太整洁的)方法是在开始时隐藏主要内容,但如果不需要该表单,那么这实际上是浪费资源。

相关内容