2023-01-05, 11:39:41
(2023-01-05, 11:00:10)hsacrm Wrote: Hello Wil,
I've tried the latest build. It works perfectly fine. Thanks.
These aren't issues for me anymore, just wanted to tell my observation if anyone has the same problems in the future:
- As long as you press down a key, the event will be called an endless time. So make sure your code is compatible with this.
- IsShiftKeyDown and IsControlKeyDown will always return 0 if you release it.
This means you cannot do a check like `if keyreleased then` because you won't know anymore if the accelatorkeys were pressed. So when pressing or holding down ctrl + shift + x, IsControlKeyDown and IsShiftKeyDown will return 1. Releasing it will show 0 even if you check whether the x-key was pressed on release.
- You cannot debug manually in VBA, the code will simply stop executing at a breakpoint as if it's never called. Debug by using print-statements. It probably has something to do with that the browser is async.
Glad to hear it works for you.
The code was tested on key-up, not key down. Even on key-up the shift and control modifiers still showed as "down".
For IsShiftKeyDown and IsControlKeyDown I figured to use a similar interface as WebView2's CoreWebView2PhysicalKeyStatus interface. So the return data type is integer and it returns 1 instead of using booleans.
One difference though is that -since I'm using the GetKeyState API- is that the function IsShiftKeyDown/IsControlKeyDown test the moment you query them.
This means that if you would run in a debug session and set a breakpoint that the status of these keys are showing the key status from your debug session. Not the status from before the breakpoint triggers.
Perhaps this can be handled, but certainly not now as I'm very close to a release and don't want to risk breaking things.
I have updated the documentation to mention that tidbit as it is an important difference.
--
Wil