Classic Shell
http://www.classicshell.net/forum/

Dont open menu on [Win] Hold
http://www.classicshell.net/forum/viewtopic.php?f=13&t=5446
Page 1 of 1

Author:  Jcee [ Tue Dec 08, 2015 3:44 pm ]
Post subject:  Dont open menu on [Win] Hold

I have several shortcuts/functions that I would like to tie to mouse, using the windows key as a modifier (IE win+scrollwheel for volume). However both programs Ive used capable of doing this, don't seem to stop the start menu from opening on key-release.


I was wondering if you could add a checkbox 'Dont open menu if [win] key is held.' I would suggest maybe 250-400 ms as a hardcoded value.

Author:  Ivo [ Fri Dec 18, 2015 9:00 am ]
Post subject:  Re: Dont open menu on [Win] Hold

Classic Shell does not access the Win key directly. It hooks into the original start menu/start screen activation.
It is not possible to hook the keyboard reliably unless you are running as admin. The start menu runs inside the Explorer process, which is not elevated.

Author:  Splitwirez [ Fri Dec 18, 2015 10:23 am ]
Post subject:  Re: Dont open menu on [Win] Hold

Ivo wrote:
Classic Shell does not access the Win key directly. It hooks into the original start menu/start screen activation.
It is not possible to hook the keyboard reliably unless you are running as admin. The start menu runs inside the Explorer process, which is not elevated.


Just a thought...does that mean you can't modify the original trigger/activation/whatever to behave as described above? ._.

Author:  Jcee [ Fri Dec 18, 2015 5:22 pm ]
Post subject:  Re: Dont open menu on [Win] Hold

Ah ok, if its not something relatively easy to implement, or requires something like elevating privileges. than I fully understand it not being implemented :P
Im sure ill find another way around this problem, likely via Auto hotkey or the like
(setting [win key] to do nothing in classic shell, adding a new hotkey for the menu, and triggering that hotkey via ahk, when a shortpress is detected)

UPDATE: here is the script, the shortcut to open classic shell is now alt+ctrl+r (and this script sends that if the LWin key is held less than .2 seconds)
Otherwise it holds down the RWin key until you release the LWin key. (after the initial .21 seconds)
Heres the code if anyone is interested
Code:
<<$LWin::
    KeyWait, LWin, T0.01               
    If ErrorLevel                        
      {
      
        KeyWait, LWin, T.2             ; Wait .25 to see if key is held

        If !ErrorLevel                  ; No timeout, so key was released
          { 
           Send ^!r
            Return
          }         

       Send {RWin down}
        KeyWait, LWin                   ; Wait for button to be released
        Send {RWin up}      
        Return
      }
      
      
Return

Page 1 of 1 All times are UTC - 8 hours [ DST ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/