Delphi 注册快捷键

ShortCutToText , TextToShortCut 需 uses Menus;

?




type

TForm1 = class(TForm)

HotKey1: THotKey;

Button1: TButton;

procedure
Button1Click(Sender: TObject);

procedure
FormDestroy(Sender: TObject);

private

{ Private declarations }

procedure
WMHotKey(var
Msg:TMessage);message WM_HOTKEY;

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

var

Key, Shift: Word;

Id: Integer;

procedure
ShortCutToKey(ShortCut: TShortCut; var
Key: Word; var
Shift: TShiftState);

begin

Key := ShortCut and
not (scShift + scCtrl + scAlt);

Shift := [];

if ShortCut and
scShift <> 0
then Include(Shift, ssShift);

if ShortCut and
scCtrl <> 0
then Include(Shift, ssCtrl);

if ShortCut and
scAlt <> 0
then Include(Shift, ssAlt);

end;

function
ShiftStateToWord(TShift: TShiftState): Word;

begin

Result := 0;

if ssShift in
TShift then
Result := MOD_SHIFT;

if ssCtrl in
TShift then
Result := Result or
MOD_CONTROL;

if ssAlt in
TShift then
Result:= Result or
MOD_ALT;

end;

procedure
TForm1.Button1Click(Sender: TObject);

var

T: TShiftState;

begin

Id := GlobalAddAtom(‘MyHotKey‘) - $C000;

ShortCutToKey(HotKey1.HotKey, Key, T);

Shift := ShiftStateToWord(T);

RegisterHotKey(Handle, Id, Shift, Key);

end;

procedure
TForm1.WMHotKey(var
Msg: TMessage);

begin

if (Msg.LparamLo = Shift) AND
(Msg.LParamHi = Key) then

ShowMessage(‘This is HotKey‘);

end;

procedure
TForm1.FormDestroy(Sender: TObject);

begin

UnRegisterHotKey(Handle, Id);

GlobalDeleteAtom(Id);

end;

end.

Delphi 注册快捷键,布布扣,bubuko.com

时间: 2024-05-10 14:38:19

Delphi 注册快捷键的相关文章

RegisterHotKey注册快捷键

RegisterHotKey的具体使用方使用方法如下: BOOL   RegisterHotKey( HWND   hWnd,         //响应该热键的窗口句柄 Int   id,                       //该热键的唯一标识 UINT   fsModifiers,   //该热键的辅助按键 UINT   vk                 //该热键的键值 );   为了得到唯一标识,我们还将用到另一个API函数   ATOM   GlobalAddAtom( L

delphi 注册表操作(读取、添加、删除、修改)完全手册

DELPHI VS PASCAL(87)  32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象:ARegistry := TRegistry.Create: 2.释放TRegistry对象.对注册表操作结束后,应释放TRegistry对象所占内存:ARegistry.Destroy. 二.指定要操作的键 操作注册表时,首先应指定操作的主键:先给属性R

Delphi操作快捷键

************************************************************** Delphi快捷键-全-高手用-南山古桃(新手)-同学共进 ************************************************************** Ctrl+PageUp 将光标移至本屏的第一行,屏幕不滚动. Ctrl+PageDown 将光标移至本屏的最后一行,屏幕不滚动. Ctrl+↓ 向下滚动屏幕,光标跟随滚动不出本屏. Ctr

Delphi常用快捷键

强烈建议安装CnPack CTRL+SHIFT+C    编写申明或者补上函数CTRL+SHIFT+↑(↓)  在过程.函数.事件内部, 可跳跃到相应的过程.函数.事件的定义 CTRL+SHIFT+G    插入GUIDCTRL+J      (弹出DELPHI语句提示窗口,选择所需语句将自动完成一条语句)CTRL+K+E(F)    标识符变小(大)写CTRL+K+O(N)    选中的变小(大)写 CTRL+SHIFT+I(U)  代码整块移动右移(左移)2个空格ALT+鼠标左键    可以

delphi 注册 dcc70.dll

@echo 开始注册copy dcc70.dll %windir%\system32\regsvr32 %windir%\system32\dcc70.dll /s@echo dcc70.dll注册成功@pause @echo 开始注册copy dcc70.dll %windir%\SysWOW64\regsvr32 %windir%\SysWOW64\dcc70.dll /s@echo dcc70.dll注册成功@pause @echo 开始注册copy dcc70.dll %windir%\

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 :

delphi常用快捷键(我自己经常使用的)

代码编辑器: Home 回到当前行的头部 End 回到当前行的尾部 Insert 插入代码,覆盖后面的代码,(按回车无效), 再按撤回效果 Delete 删除 F1 双击一个单词后,按F1调用自带的Library 参考函数引用单元及用法 F2 在Project上可重命名 Ctrl + Home 回到代码头部 Ctrl + End 回到代码底部 Ctrl + Tab 切换代码页 Ctrl + Shift + U 选中行左移Tab键(兼容) Ctrl + Tab 选中行左移Tab键(XE里可以用,D

delphi注册/反注册OCX

uses ShellAPI; function ExecAndWait(const ExecuteFile, ParamString : string): boolean; var SEInfo: TShellExecuteInfo; ExitCode: DWORD; begin FillChar(SEInfo, SizeOf(SEInfo), 0); SEInfo.cbSize := SizeOf(TShellExecuteInfo); with SEInfo do begin fMask :

delphi自定义快捷键

procedure Tmis1f.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if ((shift=[ssALT])and(key=$4E) then...//Alt+N if ((shift=[ssCtrl])and(key=$4E) then...//Ctrl+N if ((shift=[ssShift])and(key=$4E) then...//Shift+N end