A:
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
using
System.DirectoryServices;
using
System.Runtime.InteropServices;
namespace
test
...
{
public
partial
class
Form1 : Form
...
{
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
}
}
public
Form1()
...
{
InitializeComponent();
HotKey.RegisterHotKey(
this
.Handle,
100
,
0
, Keys.F1);
}
protected
override
void
WndProc(
ref
Message m)
...
{
const
int
WM_HOTKEY
=
0x0312
;
//
按快捷键
switch
(m.Msg)
...
{
case
WM_HOTKEY:
switch
(m.WParam.ToInt32())
...
{
case
100
:
MessageBox.Show(
"
Press F1
"
);
break
;
}
break
;
}
base
.WndProc(
ref
m);
}
}
}
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
using
System.DirectoryServices;
using
System.Runtime.InteropServices;
namespace
test
...
{
public
partial
class
Form1 : Form
...
{
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
}
}
public
Form1()
...
{
InitializeComponent();
HotKey.RegisterHotKey(
this
.Handle,
100
,
0
, Keys.F1);
}
protected
override
void
WndProc(
ref
Message m)
...
{
const
int
WM_HOTKEY
=
0x0312
;
//
按快捷键
switch
(m.Msg)
...
{
case
WM_HOTKEY:
switch
(m.WParam.ToInt32())
...
{
case
100
:
MessageBox.Show(
"
Press F1
"
);
break
;
}
break
;
}
base
.WndProc(
ref
m);
}
}
}