C#注册系统热键


//注册热键的api 
[DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk);
[DllImport("user32.dll")]
public static extern bool UnregisterHotKey(IntPtr hWnd, int id);


private void Form1_Load(object sender, EventArgs e)
{
	//注册热键(窗体句柄,热键ID,辅助键,实键)
	RegisterHotKey(this.Handle, 225, 0, Keys.Escape);
}

protected override void WndProc(ref Message m)
{
	if (m.Msg == 0x0312)
	{
		string id = m.WParam.ToString();
		switch (id)
		{
			case "225":
				MessageBox.Show("你按了Escape ");
				break;
		}
	}
	base.WndProc(ref m);
}

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
	//注消热键(句柄,热键ID)
	UnregisterHotKey(this.Handle, 225);
}

猜你喜欢

转载自zheyiw.iteye.com/blog/2309869