C# – Form 新增後台熱鍵

HotKey Class

class HotKey
{
	//如果函數執行成功,返回值不為0。
	//如果函數執行失败,返回值為0。要得到擴展錯誤信息,調用GetLastError。
	[DllImport("user32.dll", SetLastError = true)]
	public static extern bool RegisterHotKey(
		IntPtr hWnd,                //要定義熱鍵的窗口的句柄
		int id,                     //定義熱鍵ID(不能與其他ID重覆)           
		KeyModifiers fsModifiers,   //標示热键是否在按Alt、Ctrl、Shift、Windows等鍵時才會生效
		Keys vk                     //定義熱鍵的内容
		);

	[DllImport("user32.dll", SetLastError = true)]
	public static extern bool UnregisterHotKey(
		IntPtr hWnd,                //要取消熱鍵的窗口的句柄
		int id                      //要取消熱鍵的ID
		);

	//定義了輔助鍵的名稱(將數字轉變為字符以便記憶,也可去除此枚舉而直接使用數值)
	[Flags()]
	public enum KeyModifiers
	{
		None = 0,
		Alt = 1,
		Ctrl = 2,
		Shift = 4,
		WindowsKey = 8
	}
}

C# Form 應用

HotKey HotKey = new HotKey();

//註冊熱鍵Shift+S,Id號為100。HotKey.KeyModifiers.Shift也可以直接使用數字4來表示。
HotKey.RegisterHotKey(Handle, 100, HotKey.KeyModifiers.Shift, Keys.S);
//註冊熱鍵Ctrl+B,Id號為101。HotKey.KeyModifiers.Ctrl也可以直接使用數字2來表示。
HotKey.RegisterHotKey(Handle, 101, HotKey.KeyModifiers.Ctrl, Keys.B);
//註冊熱鍵Alt+D,Id號為102。HotKey.KeyModifiers.Alt也可以直接使用數字1來表示。
HotKey.RegisterHotKey(Handle, 102, HotKey.KeyModifiers.Alt, Keys.D);

HotKey.RegisterHotKey(Handle, 103, HotKey.KeyModifiers.Ctrl | HotKey.KeyModifiers.Alt, Keys.F);

HotKey.RegisterHotKey(Handle, hotKeyId, HotKey.KeyModifiers.Ctrl | HotKey.KeyModifiers.Alt, (Keys)Enum.Parse(typeof(Keys), show_key,true));

開始在上面輸入您的搜索詞,然後按回車進行搜索。按ESC取消。

返回頂部