DELPHI中使用热键

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

       在windows中规定应用程序热键的唯一标识符取值范围在0x0000~0xBFFF之间,动态链接库的取值范围在0xC000~0XFFFF之间。
       热键的辅助按键还包括Mod_Ctrl,Mod_Alt和Mod_Shift,对于windows兼容键盘,还包括windows标志键,Mod_Win。
       热键设置成功后,在程序运行过程中如果有预定义的热键被按下,windows系统都会给应用程序发送一个wm_hotkey消息。

       下面用一个例子演示它的使用

 

 

 

 

        编译程序、运行,如果此程序不是当前桌面显示在最前边的窗体,按下ctrl+alt+a后,程序界面将出现在桌面的最上。

        示例程序开发平台:D7+WINXP

        转载请注明出处。

 

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 
= class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  
private
    
{ Private declarations }
  
public
    
{ Public declarations }
    hotkeyid :integer; 
//记录热键标识
   
//处理wm_hotkey消息
    procedure WMhotkeyhandle(var msg:Tmessage);
     message wm_hotkey;

  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.Wmhotkeyhandle
(var msg:Tmessage);
begin
  
//判断是否是ctrl+alt+a
  if (msg.LParamHi=$41) and
     (msg.lparamLo
=MOD_CONTROL or mod_Alt) then
  begin
    msg.Result:
=1;//正常返回
    application.BringToFront;//将窗体显示在最前边
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  
//通过原子表获得一个关于hotkey的唯一标识,注意本文前边提到的范围
  hotkeyid:=GlobalAddAtom(pchar('UserDefineHotKey'))-$C000;
  
//注册ctrl+alt+a
  registerhotkey(handle,hotkeyid,MOD_CONTROL or mod_Alt,$41);

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   unregisterhotkey(handle,hotkeyid);
//
   DeleteAtom(HotKeyID);
end;

end.
delphi 屏蔽任务栏,屏蔽热键 在自己的程序中将任务栏隐藏起来,并屏蔽Ctrl+Alt+Del和Alt+Tab等系统热键,也是很有趣的。要实现它们比较容易,但千万别忘了恢复正常,另外,本例中使用了3个API函数:FindWindow、ShowWindow和SystemParametersInfo,在使用它们之前一定要进行申明。   Implementation   var Hwnd:THandle;   T 阅读详情

相关推荐

Delphi实现Hotkey自定义热键功能源代码大全

Delphi作为一门强大的编程语言,它集合了快速开发与编译效率于一身,深受IT从业者的喜爱。从最初的Pascal发展而来,Delphi不仅继承了Pascal的严谨和高效,还引入了面向对象编程的特性。它采用了可视化的集成开发环境(IDE),开发者可以在其中快速设计GUI组件并编写高效的代码。Delphi广泛应用于Windows平台的应用程序开发,特别是数据库和网络通信领域。它的核心优势之一是其编译器能够生成高效的本地代码,这意味着Delphi编写的程序运行速度非常快,接近甚至优于C++等语言。

weixin_29476595的博客 876

Delphi 注册和删除热键举例.rar

Delphi 注册HotKEY热键功能,程序功能包括注册热键、删除热键,比较初级的Delphi自定义热键的例子,仅供Delphi初学者参考,编译请在Delphi7环境下进行。下面来分享两者的具体实现代码:   以下是注册热键的功能,通过修改注册表实现:   procedure TForm1.FormCreate(Sender: TObject);   begin    hotkeyid:=GlobalAddAtom(pchar('UserDefineHotKey'))-$C000;    registerhotkey(handle,hotkeyid,MOD_CONTROL or mod_Alt,$41);   end;   以下是删除热键的功能,同样通过修改注册表实现:   procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);   begin    unregisterhotkey(handle,hotkeyid);    DeleteAtom(HotKeyID);   end;

Delphi版的Hotkey自定义热键源代码

内容索引:Delphi源码,系统相关,Hotkey,热键  Delphi版的Hotkey自定义热键源代码,设置,录制宏、编辑描述文件,鼠标快捷方式定义,键盘快捷方式定义等,源码爱好者已经收录了不少的Delphi热键,每一个从实现的原理上都有所不同,收录这些源码更侧重于学习研究,因此学习Delphi编程的朋友有必要参阅一下源程序。注意,源码包中有多个DPR文件,要先编译生成DLL的,然后再编译热键程序。

delphi 模拟发送组合键功能

之前曾经修改过keyData的16-23位为VK_MENU,第30位参数为1,但没效果。类似有个WM_SYSKEYUP,WM_SYSCHAR(这个不知道干什么用)VK_RIGHT 27 39 RIGHT ARROW键(→)VK_SCROLL 91 145 Scroll Lock键。VK_LEFT 25 37 LEFT ARROW 键(←)VK_MBUTTON 04 4 鼠标的中键(三按键鼠标)VK_DOWN 28 40 DOWN ARROW键(↓)VK_CAPITAL 14 20 Caps Lock键。

q304929130的专栏 1040

Delphi定义热键

用到3个API函数 BOOL RegisterHotKey( HWND hWnd, //响应该热键的窗口句柄 Int id, //该热键的唯一标识 UINT fsModifiers, //该热键的辅助按键 UINT vk //该热键的键值 ); 为了得到唯一标识,我们还将用到另一个API函数 ATOM GlobalAddAtom( LPCTSTR lpString //自己设定

心情之旅 1650

Delphi快捷键

Delphi快捷键选中窗体 : 先选中任一控件,SHIFT+鼠标左键将鼠标指向变量名、单元名、类名,再用 CTRL+鼠标左键,可找到相应的说明 esc选择上层对象 SHIFT+CTRL+E 显示 EXPLORERf11 属性 f9运行 crtl+f9 编译 crtl + shift + n (n=1,2,3,4......)定义书签 crtl + n (n=1,2,

Tercel99的专栏 2315

delphi 如何设置热键

unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender

疯流人物 2418

Delphi热键简易方法

Delphi热键简易方法

mytinaonly的专栏 1091

DELPHI如何注册系统热键

DELPHI如何注册系统热键 (2003年10月21日) 发表日期:2003-3-1 文章作者:未知  已浏览: 357 次 var i=9; fun

dingrj的专栏 2356

delphi热键:delphi程序中定义热键的方法 --转

====================================================== 注:本文源代码点此下载 ====================================================== 疯狂代码 http://www.crazycoder.cn/ :http:/www.crazycoder.cn/delphi/article117

javazhuanzai的专栏 389

Delphi RegisterHotKey 设置系统热键

首先先贴一张热键表 Symbolic constant name Value (hexadecimal) Keyboard (or mouse) equivalent VK_LBUTTON 01 Left mouse button VK_RBUTTON 02 Right mouse button VK_CANCEL 03 Cont

Microblue(严 武) 7036

Delphi 热键处理hotkey

单元引用:Uses Winapi.Messages;  函数声明:   procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY; 热键注册:窗体create中 HotKeyId := GlobalAddAtom('MyHotKey') - $C000;   RegisterHotKey(Handle, HotKeyId, 0,

时光旅行者 2670

Delphi 热键 | Delphi 使用WIN键作为组合热键

unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure .

Kim的博客 417

delphi热键定义控件

先注册tcomponet 然后定义 支持跳转顺序等

delphi程序中定义热键

Delphi定义热键2007-03-20 08:34 用到3个API函数 BOOL RegisterHotKey( HWND hWnd, //响应该热键的窗口句柄 Int id, //该热键的唯一标识 UINT fsModifiers,

123123121 834

delphi程序热键

要定义一个全局热键,通常有三个步骤:       1、定义Windows的消息WM_HOTKEY的HOOK链,即              procedure MyShortCut(Var Message:TMessage);Message WM_HOTKEY;           2、向Windows加入一个全局原子hotkey:GlobalAddAtom(’hotkey’),   并保留其...

weixin_34217773的博客 186

delphi热键注册

unit Unit1;       interface      uses     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,      Dialogs;       type     TForm1 = class(TForm)        pro

123123121 953

Delphi全局热键注册

private { Private declarations } Aatom: ATOM; procedure hotkey(var msg: TMessage); message WM_HOTKEY; procedure TForm1.FormCreate(Sender: TObject); begin if FindAtom('ZWXhotKey') = 0 th

123 1515

Delphi 热键 使用WIN作为热键的组合键 给程序增加快捷键

unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure .

Kim的博客 211
上一篇: 在DELPHI中获得磁盘容量
下一篇: 接受外部拖动
wudi_1982
博客等级 码龄24年 40粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值