如何在程序中定义两个系统全局快捷键,一个为Ctrl+Shift+Z,另一个为Shift+Enter,并且无论当按Ctrl+Shift+Z时,还是按Shift+Enter时,都能正确执行他们事先定义好的代码动作。
解决方案 »
- Delphi6 如何获取 SQL SERVER的用户名?
- Delphi中关于多进程的问题,请高手作答
- DCOM怎么使用?
- 使用ADO连接Oracle8.1.7数据库,provider均采用微软的MSDAORA.1 但Delphi编的程序有时能连上(概率较小)有时不能连上,VC++编的程序没什
- 只能button,其他控件怎么不行?
- 使用delphi开发asp对象,来看一看#
- SOS,SOS请各位大侠帮忙!!!!!!!!!!
- socket通讯异常问题,请教!
- 用DBComboBox怎么实现显示是选项1、选项2、选项3……而实际存1,2,3……
- dana(dana) 来拿分
- 做自动更新程序时遇到点问题不明白了,请帮看一下是什么意思?
- delphi oposprinter 打印问题 高手指点
HotKeyId := GlobalAddAtom('show') - $C000;
RegisterHotKey(Self.Handle, hotkeyid, MOD_CONTROL, 77); //注册系统热键F7
HotKeyId1 := GlobalAddAtom('next') - $C000;
RegisterHotKey(Self.Handle, hotkeyid1, 0, VK_F7); //在程序最后释放系统热键
UnRegisterHotKey(self.handle, HotKeyId);
UnRegisterHotKey(self.handle, HotKeyId1);
DeleteAtom(hotKeyID);
DeleteAtom(hotKeyID1);
注:RegisterHotKey为注册热键函数,UnRegisterHotKey为热键释放函数,GlobalAddAtom为全局原子表添加唯一原子
procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY;procedure TForm1.HotKeyDown(var Msg: Tmessage);
begin
if (Msg.LparamLo = MOD_CONTROL) and (Msg.LParamHi = 77) or (msg.LParamHi = vk_F7) then // 假设热键为CTRL+M
begin
... ...
end;
end;