单元引用:Uses Winapi.Messages;
函数声明: procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY;
热键注册:窗体create中
HotKeyId := GlobalAddAtom('MyHotKey') - $C000;
RegisterHotKey(Handle, HotKeyId, 0, 032);
函数实现:
procedure TTFormMain.HotKeyDown(var Msg: Tmessage);
begin
{ if not g_isStart then Exit;
if (Msg.LParamHi = 032) then
begin
if Timer1.Enabled then
begin
Timer1.Enabled:=false;
PlayMusic(m_myAdoquery.GetDrawMusic);
//定时中g_KeyNumber 自动加1 所以要减1 才是要的结果
self.SetInfoText(m_myDestUser.Strings[g_KeyNumber-1]+' '+inttostr(g_KeyNumber-1));
end
else begin
Timer1.Enabled:=true;
PlayMusic(m_myAdoquery.GetRollMusic);
end;
end;
}
end;
退出时:UnRegisterHotKey(handle, HotKeyId);
本文介绍了如何在Delphi中处理热键。通过在窗体创建时注册热键,并定义`WM_HOTKEY`消息处理程序`HotKeyDown`,在接收到特定热键组合时触发相应操作,如播放音乐。在程序退出时,别忘了注销热键。
376

被折叠的 条评论
为什么被折叠?



