C#全局快捷键

free_loop 2012-06-16 07:07:35
假如我想实现用Alt+D实现隐藏窗口,然后用Alt+H显示 请问怎么实现。
...全文
225 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
色拉油 2012-06-17
  • 打赏
  • 举报
回复
RegisterHotKey注册全局热键
__天涯寻梦 2012-06-17
  • 打赏
  • 举报
回复
// 定义常量和方法
private const int HIDE_ID = 0x1111;
private const int SHOW_ID = 0x1112;

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);

// 窗体构造函数添加代码
const uint MOD_ALT = 0x0001;
RegisterHotKey(this.Handle, HIDE_ID, MOD_ALT, (uint)Keys.D);
RegisterHotKey(this.Handle, SHOW_ID, MOD_ALT, (uint)Keys.H);

// 重写窗体 WndProc 方法
protected override void WndProc(ref Message m)
{
const int WM_HOTKEY = 0x0312;
switch (m.Msg)
{
case WM_HOTKEY:
{
switch (m.WParam.ToInt32())
{
case HIDE_ID:
this.Visible = false;
break;
case SHOW_ID:
this.Visible = true;
break;
default:
break;
}
break;
}
default:
break;
}
base.WndProc(ref m);
}
bdmh 2012-06-16
  • 打赏
  • 举报
回复
ParanoidKing 2012-06-16
  • 打赏
  • 举报
回复
使用RegisterHotKey和UnregisterHotKey这两个WINAPI

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧