Identifying Hotkey/Shortcut Mappings/Conflicts

charlestek

New member
Local time
1:20 AM
Messages
11
I just tried installing a program that makes sticky notes, but has keyboard shortcuts that do not work at all.
Right now I know I have shortcuts from Windows, Evernote, a screen capture utility and probably a few other programs.

I have been googling for a couple hours trying to find a utlity/program that would show Windows hotkey mappings/conflicts. Unfortunately only two exist and both will not work on Windows 7 64 bit:
Hotkey Commander - Powerful Hotkey Managing and Overriding Tool
Ethervane ActiveHotkeys « Tranglos 3.0

I can't find anything else out there. There must be a way to do this.


Thanks.
 

My Computer My Computer

Computer type
PC/Desktop
OS
Win 8.1 Professional 64 bit, Win 7 Ultimate 64 biut
Found Additional Data

Am looking at this program sharpkeys, linked below, as well as a bunch of related webpages below.
Sharpkeys will only allow remapping of one key to another, but my problem of finding out what program has control over what hotkey/shortcut is not solved by the information below.

https://sharpkeys.codeplex.com/

Is there any way to disable certain keyboard shortcuts in Windows 7? - Super User

Disable Global Hot Keys

About Hotkeys - Manage Your Hotkeys - Hotkey Detective 2 | PCMag.com


Disable some hotkeys in Win 7 Home Premium? | Windows Secrets Lounge
 

My Computer My Computer

Computer type
PC/Desktop
OS
Win 8.1 Professional 64 bit, Win 7 Ultimate 64 biut
It is just about impossible to determine which program owns a hotkey. What you may be able to do is use AutoHotkey to make a small script that takes over hotkeys and sends them to the window with the focus. It has conditional hotkeys so that this effect can be limited to when the program you are trying to use has the active window. For example to send control s to notepad you would do this

Code:
Sendmode Input

; the dollar sign means the keyboard is hooked so
; we won't read back our own "Send" of the same keys
#IfWinActive ahk_class Notepad ; only in effect if Notepad has the focus
$^s
  Send ^s
return
#IfWinActive ; blank puts it back to global hotkey mode
; yadda yadda do more stuff
AutoHotkey is a free Windows scripting language. It is optimized for hotkey
and mouse handling. But it does a lot more.

Edit: What is happening is, you know some other program has a global hotkey, in this example control s, so we use the script to temporarily steal the hotkey back whenever the program of interest has the focus. In this example it is Notepad. Autohotkey comes with a spy program that can be used to get window class names, titles etc.. so you know what to use with statements such as
#IfWinActive

Edit2: The page has a link to AHK forums where you can ask for scripting help. But most simple stuff can be found in the help file.
 

My Computer My Computer

Computer Manufacturer/Model Number
HP Media Center
OS
Windows 7 32 bit
CPU
AMD 5200+ dual core
Memory
2 GB
Graphics Card(s)
NVidia GeForce 6150SE 128 MB
Monitor(s) Displays
CRT
Screen Resolution
1280x1024
Hard Drives
500 GB Sata internal :

SIIG USB 3.0 docking stations w/WD Caviar Black 6 Gb/s drives
Keyboard
PS/2
Mouse
PS/2 Wheel Mouse
Other Info
SIIG USB 3.0 PCIexpress card.
Program Conflict is main issue

Miles,

Thanks. But I don't need to take over mapping, I need to find out what programs are trying to have duplicate control over keys such that the hotkeys for the sticky note program do not work.

Per the articles I listed, I think other authors say similar things that windows many not have hooks to see what is controlling what, but that is really big problem. Since I used to be a .Net developer, I do find it hard to believe that there is no programatic way of finding this out. The two programs I listed in the original post do identify the programs that control keys, but they do not work with Win 7 or maybe it is 64 bits that is an issue. Since I presume these programs once worked with one version of windows, it must be possible to have a properly constructed program to work as well.
 

My Computer My Computer

Computer type
PC/Desktop
OS
Win 8.1 Professional 64 bit, Win 7 Ultimate 64 biut
Tranglos is a member of DonationCoder.com as am I. See this thread
New program: Ethervane ActiveHotkeys (freeware) - DonationCoder.com

I don't believe there is a clean way to do what you are asking or someone on DC would know about it. There are many AHK programmers as well as developers who use other languages. I believe the approach Tranglos uses is brute force rather than a query of the OS. But if you post to that thread I am sure he would be happy to discuss the issues involved.
 

My Computer My Computer

Computer Manufacturer/Model Number
HP Media Center
OS
Windows 7 32 bit
CPU
AMD 5200+ dual core
Memory
2 GB
Graphics Card(s)
NVidia GeForce 6150SE 128 MB
Monitor(s) Displays
CRT
Screen Resolution
1280x1024
Hard Drives
500 GB Sata internal :

SIIG USB 3.0 docking stations w/WD Caviar Black 6 Gb/s drives
Keyboard
PS/2
Mouse
PS/2 Wheel Mouse
Other Info
SIIG USB 3.0 PCIexpress card.
Miles,

Thank you. I will. The description of his program says it cannot identify which program has registered particular hotkeys, so all I can ask is why this is not possible.
 
Last edited:

My Computer My Computer

Computer type
PC/Desktop
OS
Win 8.1 Professional 64 bit, Win 7 Ultimate 64 biut
I believe this hook call is used
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644990(v=vs.85).aspx

There can be a whole chain of functions hooked in. It is sort of like the old 8086 assembler routine where if you hooked an Interrupt, you called the previous handler when done with your code. The system isn't going to trace all that down and find out which program owns each routine. It just calls all the callbacks in the chain. It is likely up to the callback which key combinations it is watching for.
 

My Computer My Computer

Computer Manufacturer/Model Number
HP Media Center
OS
Windows 7 32 bit
CPU
AMD 5200+ dual core
Memory
2 GB
Graphics Card(s)
NVidia GeForce 6150SE 128 MB
Monitor(s) Displays
CRT
Screen Resolution
1280x1024
Hard Drives
500 GB Sata internal :

SIIG USB 3.0 docking stations w/WD Caviar Black 6 Gb/s drives
Keyboard
PS/2
Mouse
PS/2 Wheel Mouse
Other Info
SIIG USB 3.0 PCIexpress card.
Back
Top