在 C# 中,我们可以使用 HotKey 类来注册一个快捷键,并在按下快捷键时调用某个窗口。

下面是一个示例代码,演示如何使用快捷键调用一个窗口:

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

public class HotKeyForm : Form
{
    // 导入用户32库中的注册快捷键函数
    [DllImport("user32.dll")]
    private static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk);

    // 导入用户32库中的注销快捷键函数
    [DllImport("user32.dll")]
    private static extern bool UnregisterHotKey(IntPtr hWnd, int id);

    // 常量,表示Ctrl键的键码
    private const int MOD_CTRL = 0x0002;

    // 常量,表示快捷键的ID
    private const int HOTKEY_ID = 1;

    // 重写窗体的消息处理方法
    protected override void WndProc(ref Message m)
    {
        base.WndProc(ref m);

        // 判断是否为快捷键消息
        if (m.Msg == 0x0312 && m.WParam.ToInt32() == HOTKEY_ID)
        {
            // 在这里调用你想要打开的窗口
            // 例如:
            YourWindowForm window = new YourWindowForm();
            window.Show();
        }
    }

    // 注册快捷键
    private void RegisterHotkey()
    {
        RegisterHotKey(this.Handle, HOTKEY_ID, MOD_CTRL, (int)Keys.A); // 这里使用Ctrl+A作为快捷键
    }

    // 注销快捷键
    private void UnregisterHotkey()
    {
        UnregisterHotKey(this.Handle, HOTKEY_ID);
    }

    // 重写窗体的关闭事件
    protected override void OnFormClosed(FormClosedEventArgs e)
    {
        base.OnFormClosed(e);

        // 在窗体关闭时注销快捷键
        UnregisterHotkey();
    }

    // 构造函数
    public HotKeyForm()
    {
        // 注册快捷键
        RegisterHotkey();
    }
}

public class Program
{
    [STAThread]
    static void Main()
    {
        Application.Run(new HotKeyForm());
    }
}

在上面的示例代码中,我们创建了一个继承自 FormHotKeyForm 类。在该类中,我们使用 RegisterHotKey 函数注册了一个快捷键(这里使用 Ctrl+A),并在按下快捷键时,在 WndProc 方法中调用了你想要打开的窗口(YourWindowForm)。同时,在窗体关闭时,我们使用 UnregisterHotKey 函数注销了快捷键。

你可以根据实际需求修改 RegisterHotKey 中的快捷键组合和键码,并在 WndProc 中调用你想要打开的窗口。请确保在 Main 方法中创建并运行 HotKeyForm 实例。