Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menetapkan Kekunci Panas Global dalam C# untuk Mencetuskan Tindakan Walaupun Aplikasi Saya Diminimumkan?

Bagaimanakah Saya Boleh Menetapkan Kekunci Panas Global dalam C# untuk Mencetuskan Tindakan Walaupun Aplikasi Saya Diminimumkan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-24 05:32:17287semak imbas

How Can I Set Global Hotkeys in C# to Trigger Actions Even When My Application is Minimized?

Tetapkan kekunci pintas global dalam C#

Anda mungkin perlu menangkap ketukan kekunci tertentu untuk mencetuskan tindakan apabila program diminimumkan atau tidak aktif. Artikel ini menerangkan cara mendaftar kekunci pintas global dalam C# supaya acara boleh dilakukan dalam aplikasi walaupun aplikasi itu bukan tetingkap aktif.

Penyelesaian:

Untuk menangkap kekunci pintas yang tidak berkaitan dengan aplikasi aktif, kami boleh menggunakan fungsi API Win32 RegisterHotKey dan UnregisterHotKey. Fungsi ini berinteraksi dengan infrastruktur kekunci pintas peringkat sistem Windows.

Pelaksanaan kod:

Kod yang disediakan menggunakan kelas khusus KeyboardHook yang merangkumi pendaftaran hotkey dan fungsi pengendalian acara.

<code class="language-csharp">public sealed class KeyboardHook : IDisposable
{
    // 使用Windows注册热键。
    [DllImport("user32.dll")]
    private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);
    // 使用Windows注销热键。
    [DllImport("user32.dll")]
    private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
    ...
}</code>

Penggunaan:

<code class="language-csharp">// 注册Control + Alt + F12热键组合。
hook.RegisterHotKey(ModifierKeys.Control | ModifierKeys.Alt, Keys.F12);

// 按键事件处理程序。
void hook_KeyPressed(object sender, KeyPressedEventArgs e)
{
    label1.Text = e.Modifier.ToString() + " + " + e.Key.ToString();
}</code>

Nota Penting:

  • Penyelesaian ini memerlukan projek WinForms untuk mencetuskan acara.
  • Pengubah suai tertentu, seperti "Win" dan "Shift", mungkin memerlukan hantaran disebabkan oleh perbezaan dalam nilai penghitungan antara API C# dan Win32.

Output yang disemak ini mengekalkan imej dan format asalnya sambil menyusun semula teks untuk kejelasan dan aliran yang dipertingkatkan juga sedikit diubah untuk mengelakkan pertindihan tepat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan Kekunci Panas Global dalam C# untuk Mencetuskan Tindakan Walaupun Aplikasi Saya Diminimumkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn