如何在C#中使用RegisterHotKey()?
我正在尝试注册一个热键,我正在翻译这个 C ++代码,我写道:
using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace ConsoleApplication1 { class Program { [DllImport("user32.dll")] public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, int vk); [DllImport("user32")] public static extern bool GetMessage(ref Message lpMsg, IntPtr handle, uint mMsgFilterInMain, uint mMsgFilterMax); public const int MOD_ALT = 0x0001; public const int MOD_CONTROL = 0x0002; public const int MOD_SHIFT = 0x004; public const int MOD_NOREPEAT = 0x400; public const int WM_HOTKEY = 0x312; public const int DSIX = 0x36; static void Main(string[] args) { if (!RegisterHotKey(IntPtr.Zero, 1, MOD_ALT | MOD_NOREPEAT, DSIX)) { Console.WriteLine("failed key register!"); } Message msg = new Message(); while (!GetMessage(ref msg, IntPtr.Zero, 0, 0)) { if (msg.message == WM_HOTKEY) { Console.WriteLine("do work.."); } } Console.ReadLine(); } } public class Message { public int message { get; set; } } }
但它RegisterHotKey()
永远返回false。 我不确定方法中传递的参数,IntPtr.Zero是等于null,而消息类是第二个参数所需的对象。 有人可以澄清吗? 任何帮助非常感谢!
这可能有所帮助:
控制台应用程序中的热键
基本上,您必须创建一个“隐藏”的表单才能使其工作
上述就是C#学习教程:如何在C#中使用RegisterHotKey()?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1003696.html