时间:2021-05-20
最近找了一些资料,是讲在C#中设置快捷键运行方法或程序的
要设置快捷键必须使用user32.dll下面的两个方法。
BOOLRegisterHotKey(
HWNDhWnd,
intid,
UINTfsModifiers,
UINTvk
);
和
BOOLUnregisterHotKey(
HWNDhWnd,
intid
);
转换成C#代码,那么首先就要引用命名空间System.Runtime.InteropServices;来加载非托管类user32.dll。于是有了:
[DllImport("user32.dll",SetLastError=true)]
publicstaticexternboolRegisterHotKey(
IntPtrhWnd,//handletowindow
intid,//hotkeyidentifier
KeyModifiersfsModifiers,//key-modifieroptions
Keysvk//virtual-keycode
);
[DllImport("user32.dll",SetLastError=true)]
publicstaticexternboolUnregisterHotKey(
IntPtrhWnd,//handletowindow
intid//hotkeyidentifier
);
[Flags()]
publicenumKeyModifiers
{
None=0,
Alt=1,
Control=2,
Shift=4,
Windows=8
}
这是注册和卸载全局快捷键的方法,那么我们只需要在Form_Load的时候加上注册快捷键的语句,在FormClosing的时候卸载全局快捷键。同时,为了保证剪贴板的内容不受到其他程序调用剪贴板的干扰,在Form_Load的时候,我先将剪贴板里面的内容清空。
于是有了:
privatevoidForm1_Load(objectsender,System.EventArgse)
{
label2.AutoSize=true;
Clipboard.Clear();//先清空剪贴板防止剪贴板里面先复制了其他内容
RegisterHotKey(Handle,100,0,Keys.F10);
}
privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse)
{
UnregisterHotKey(Handle,100);//卸载快捷键
}
那么我们在别的窗口,怎么让按了快捷键以后调用我的主过程ProcessHotkey()呢?
那么我们就必须重写WndProc()方法,通过监视系统消息,来调用过程:
protectedoverridevoidWndProc(refMessagem)//监视Windows消息
{
constintWM_HOTKEY=0x0312;//按快捷键
switch(m.Msg)
{
caseWM_HOTKEY:
ProcessHotkey();//调用主处理程序
break;
}
base.WndProc(refm);
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在Word文档的操作中,复制的快捷键是ctrl+c,粘贴的快捷键是ctrl+v键,word中剪切的快捷键是Ctrl+X。 MicrosoftOfficeWor
本文实例讲述了C#调用系统API指定快捷键的方法。分享给大家供大家参考。具体分析如下:快捷键的作用大家都清楚,就是快捷嘛,操作起来方便.用电脑的人很少有没用过C
word中复制的快捷键为ctrl+c,而粘贴的快捷键就是ctrl+v键,word中剪切的快捷键是Ctrl+X。 MicrosoftWord,最初是由Richa
cad快捷键是指在CAD软件操作中,为方便使用者,利用快捷键代替鼠标。可以利用键盘快捷键发出命令,完成绘图,修改,保存等操作。这些命令键就是CAD快捷键。 C
ctrl加d是删除/添加收藏快捷键,而Ctrl+A是全选快捷键,Ctrl+B整理收藏夹快捷键,Ctrl+C复制快捷键等等。 快捷键(shortcutkeys)