从delphi中的其他进程取消注册热键

时间:2016-02-22 21:01:30

标签: delphi

在其他进程定义ShortCutkey时添加全局热键的问题。

e.g

在我的delphi应用程序中定义全局键ShortCutkeys Ctrl + A,因此Ctrl + A是通过其他进程定义全局。当按ShortCutkey(Ctrl + A)然后其他进程捕获它和我的应用程序无法捕获ShortCutkey。

使用此代码添加全局

  KeyID:= GlobalAddAtom('#SelectAll');
  RegisterHotKey(Handle, KeyID, MOD_CONTROL, Ord('A'));

1 个答案:

答案 0 :(得分:2)

您已正确描述了全局热键的工作方式。你不能改变它。您所能做的就是为您的客户缓解问题。

当您尝试注册的组合键已被其他内容使用时,RegisterHotKey函数将失败。利用这种行为。为用户提供一种在程序中自定义组合键的方法,当用户进行选择时,尝试注册它。如果注册失败,则报告失败并提示用户选择其他内容。

全局热键是共享资源。你需要让你的程序与他人合作。