delphi注册热键方法(一)
uses windows,menus;
.....
//声明
HotKey_Key: Word;
HotKey_Shift: Word;
procedure WMHotKey(var msg : Tmessage); message WM_HOTKEY;
......
function ShiftStateToWord(Shift:TShiftState): Word;
begin
if ssShift in Shift then Result :=MOD_SHIFT else Result := 0;
if ssCtrl in Shift then Result :=Result or MOD_CONTROL;
if ssAlt in Shift then Result:=Result or MOD_ALT;
end;
//实现
procedure TForm1.WMHotKey (var Msg : Tmessage);
begin
if ((Msg.LParamHi = HotKey_Key) and (Msg.LParamLo = HotKey_Shift)) then
begin
//do someting.....
end;
end;
//注册热键
procedure TForm1.hotKey1Change(Sender: TObject);
var SS: TShiftState;
begin
Aatom := GlobalAddAtom('EA7276EC-34C1-4A11-8CB3-9940FC76539D'); //全局热键ID
ShortCutToKey(HotKeyset.HotKey, HotKey_Key, SS);
HotKey_Shift := ShiftStateToWord(SS);
RegisterHotKey(Handle, Aatom, HotKey_Shift, HotKey_Key); //注册全局热键
end;
//取消已注册的热键
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Handle, Aatom);
GlobalDeleteAtom(Aatom);
end;
delphi注册热键方法(一)的更多相关文章
- delphi 注册表操作(读取、添加、删除、修改)完全手册
DELPHI VS PASCAL(87) 32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操 ...
- 【WinForm程序】注册热键快捷键切换
重写DefWndProc事件 #region Window 消息捕获 const int WM_COPYDATA = 0x004A; public struct COPYDATASTRUCT { pu ...
- WPF注册热键后处理热键消息(非winform方式)
由于最近在做wpf版的截图软件,在处理全局热键的时候,发现国内博客使用的都是winform窗体的键盘处理方式,此方式需要使用winform的动态库,如此不协调的代码让我开始在github中寻找相关代码 ...
- WinForm和WPF中注册热键
由于.Net没有提供专门的类库处理热键,所以需要直接调用windows API来解决. HotKey为.NET调用Windows API的封装代码,主要是RegisterHotKey和Unregist ...
- 最新WingIDE注册破解方法 【转】
WingIDE是Python程序语言设计的集成开发环境,具有语法标签高亮显示,命令自动完成和函数跳转列表等非常强大的功能.本文主要介绍WingIDE 5安装及注册破解方法. 注:本教程在python ...
- delphi cxgrid 使用方法
delphi cxgrid 使用方法1.绑定数据 方法 cxGrid1DBTableView1.DataController.DataSource:=DataSource12.去掉"Drag ...
- Delphi面向对象的方法
方法是属于一个给定对象的过程和函数,方法反映的是对象的行为而不是数据,前一篇提到的对象的两个重要的方法:构造方法和析构方法. 为了使对象能执行各种功能,你能在对象中定制方法 创建一个方法用两个步骤,首 ...
- JNI-使用RegisterNatives注册本地方法
转自: http://blog.chinaunix.net/uid-26009923-id-3410141.html 1. 以前在jni中写本地方法时,都会写成 Java_com_example_he ...
- WingIDE注册破解方法
WingIDE是Python程序语言设计的集成开发环境,具有语法标签高亮显示,命令自动完成和函数跳转列表等非常强大的功能.本文主要介绍WingIDE 5安装及注册破解方法. 1. WingIDE 5下 ...
随机推荐
- centos下部署启动elasticsearch错误集合与解决方案
问题一: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 解决步 ...
- MyBatis Generator 生成数据库自带中文注释
1. maven依赖 <!-- mybatis生成 jar包 --> <dependency> <groupId>org.mybatis.generator< ...
- java list按照 对象 指定多个字段属性进行排序
ListUtils.Java---功能类 package PjectUtils; import java.lang.reflect.Field; import java.text.NumberForm ...
- JVM总结-字节码
在运行过程中,每当调用进入一个 Java 方法,Java 虚拟机会在当前线程的 Java 方法栈中生成一个栈帧,用以存放局部变量以及字节码的操作数.这个栈帧的大小是提前计算好的,而且 Java 虚拟机 ...
- python - requests中添加配置文件
HttpRequests.py #-*- coding:utf-8 -*- import requests class HttpRequests(): def http_requests(se ...
- Java-左移右移-jdk8
移位有三种 << 左移,左边补0 >> 右移,正数左边补0,负数补1 >>> 右移, 正数,负数统一左边补0 来看几个奇葩的代码 public static ...
- java 获得系统当前时间
import org.junit.Test; import java.text.SimpleDateFormat; import java.util.Calendar; import java.uti ...
- 13.纯 CSS 创作一个冒着热气的咖啡杯
原文地址:https://segmentfault.com/a/1190000014734039 感想:伪元素::before ::after 真的很强大,动画也是. HTML代码: <div ...
- mysql 外键引发的删除失败
mysql> TRUNCATE TABLE role ; ERROR 1701 (42000): Cannot truncate a table referenced in a foreign ...
- Android开发中常见的设计模式(二)——Builder模式
了解了单例模式,接下来介绍另一个常见的模式--Builder模式. 那么什么是Builder模式呢.通过搜索,会发现大部分网上的定义都是 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建 ...