Recent

Author Topic: Global hotkey  (Read 1041 times)

scribly

  • Jr. Member
  • **
  • Posts: 77
Global hotkey
« on: March 31, 2020, 10:32:25 am »
I'd like to register a hotkey (e.g cmd+alt+Q)" that will do a specific action in my application when pressed, even when my app isn't in the foreground.
Is that possible? I checked out getKeyState but that only gets modifiers

trev

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1386
  • Former Delphi 1-7, 10.2 User
Re: Global hotkey
« Reply #1 on: March 31, 2020, 12:29:56 pm »
This Apple documentation may be of help.
Lazarus 2.1 r65019 FPC 3.3.1 r49223 macOS 10.14.6 Xcode 11.3.1
Lazarus 2.1 r65019 FPC 3.3.1 r49223 macOS 11.2.3 aarch64 Xcode 12.4
Lazarus 2.1 r61574 FPC 3.3.1 r42318 FreeBSD 12.1 amd64 VMware VM
Lazarus 2.1 r61574 FPC 3.0.4 Ubuntu 20.04 Parallels VM
Lazarus 2.0.10 FPC 3.2.0 Win10 Parallels VM

scribly

  • Jr. Member
  • **
  • Posts: 77
Re: Global hotkey
« Reply #2 on: March 31, 2020, 11:49:13 pm »
I managed to get it to work with Install(Application)EventHandler, and RegisterEventHotkey

trev

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1386
  • Former Delphi 1-7, 10.2 User
Re: Global hotkey
« Reply #3 on: April 01, 2020, 02:17:08 am »
I may be wrong, but isn't RegisterEventHotkey from the 32 bit Carbon framework? In which case it will not work after Mojave...
Lazarus 2.1 r65019 FPC 3.3.1 r49223 macOS 10.14.6 Xcode 11.3.1
Lazarus 2.1 r65019 FPC 3.3.1 r49223 macOS 11.2.3 aarch64 Xcode 12.4
Lazarus 2.1 r61574 FPC 3.3.1 r42318 FreeBSD 12.1 amd64 VMware VM
Lazarus 2.1 r61574 FPC 3.0.4 Ubuntu 20.04 Parallels VM
Lazarus 2.0.10 FPC 3.2.0 Win10 Parallels VM

scribly

  • Jr. Member
  • **
  • Posts: 77
Re: Global hotkey
« Reply #4 on: April 01, 2020, 09:01:24 am »
I'm on catalina and it still works. It's one of the functions that they kept functional in 64-bit
« Last Edit: April 01, 2020, 09:03:49 am by scribly »

trev

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1386
  • Former Delphi 1-7, 10.2 User
Re: Global hotkey
« Reply #5 on: April 01, 2020, 12:47:45 pm »
Good to know.
Lazarus 2.1 r65019 FPC 3.3.1 r49223 macOS 10.14.6 Xcode 11.3.1
Lazarus 2.1 r65019 FPC 3.3.1 r49223 macOS 11.2.3 aarch64 Xcode 12.4
Lazarus 2.1 r61574 FPC 3.3.1 r42318 FreeBSD 12.1 amd64 VMware VM
Lazarus 2.1 r61574 FPC 3.0.4 Ubuntu 20.04 Parallels VM
Lazarus 2.0.10 FPC 3.2.0 Win10 Parallels VM

 

TinyPortal © 2005-2018