Timeline



Feb 3, 2024:

5:16 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum
Forgot to declare $aCall […]
5:09 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum
I should have waited but ..., anyway, this is better. […]
4:50 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
[…]
4:46 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
..the above code is wrong, can't just remove the Do Until loop. I'll fix it in a moment
4:36 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
>The default as true is really to have a return on the the key only without the modifier pressed Well, the array is the first claim. Say I make an array ( $aArray[2] = [0x12,0x58] ; alt - x ) that by default will not work as expected due to defaulting to exclude the alt key, otherwise the code would have to exclude the modifier key declared on the array. That complicates the code. It'd be easier to just default to false, to keep it as is. Most people using this func are expecting a function key or a combination of modifier and letter, not just a letter. The part that only returns after keys released, to make it on keypress, either, call the func again with "NOT func()" as it was done before the change, or have an extra parameter to call a func. for the in between state. So removing the wait on release and defaulting $bCheckModifierKey to false would make the new beta functional. Also, […] would make more sense if the staic declaration is to be kept. These changes will obviously change the expected functionality of whomever proposed the change but at least it would make the code widely functional other than just a for OP only. Therefore, the "fixed" code ( with minimal modification, to just make it functional ) I propose would be: […]
1:23 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by J-Paul Mesnage
I don't remember when the extension was introduced I agree that they are more to handle clicked keys The default as true is really to have a return on the the key only without the modifier pressed I need to think if the function must work on pressed only just propose modification so that addition can work

Feb 2, 2024:

11:31 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
Side note about the VK_* new addition in beta: 1) A user expects action right after pressing the keys, not after releasing them. 2) The $bCheckModifierKey should in my view, default to false. Then again I have no idea why the new feature is incorporated nor the way it is. Nonetheless I wanted to bring it up. ( unless is outside the scope of this post and is to be discussed elsewhere and/or by MVPs )
9:43 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
I get an infinite loop with 0xB3 from the bluetooth at: […] ..given that in this case of the bluetooth input device (or driver), signals the LSB ( 0x8001 ) and gets stuck in 0x8000, never to get back to 0x0000 as it should. Is the whole reason for the need to know the LSB. Then again, fortunately, is not something that happens on a keyboard. As I see it ( and tested ), the beta code is good.
6:13 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by J-Paul Mesnage
Hi, in which case do you get an infinite loop?
5:29 PM Ticket #3969 (Map Initializer List) updated by Andreik
I use maps very often and I would like to see a map initializer but I don't know if it's possible without introducing a new operator, a keyword or something. It will be a total confusion. Take this as example: […] Right now this is a valid syntax to initialize an array with one element but it could be as well a map with the key name 1 (according to proposed syntax).
3:02 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
Now that I've looked at it I understand. Looks good. Thanks. In my, quite unexpected case, using the VK_* would have gotten me in a (infinite loop) frozen script.
7:45 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by J-Paul Mesnage
[…]
12:07 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
would you paste here or send a PM/DM to me about this new beta code to take a look at ? ..looking at the beta code would give me a better understanding of what is that you are evaluating. A matching array of VK_ would ... hmmm, could return the "LSB += LSB" to satisfy my request.

Feb 1, 2024:

11:11 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by J-Paul Mesnage
As I understand the return True with only the Most significant bit set is not enought for you (current implementation) you want to be sure it is the first time so you don't want to check it is released as MSDN suggest (return false) and do some action in the next beta version default is the same but now if you pass not a string a a VK_* value the return will wait the touch is release if you pass an array of $VK_* you will get a return if one of them has been clicked
8:44 AM Ticket #3946 (_ChooseFont() updated defaults) updated by argumentum <argumentum@…>
#include <Misc.au3> _ChooseFont ( [$sFontName = "Courier New" [, $iPointSize = 10 [, $iFontColorRef = Default [, $iFontWeight = 0 [, $bItalic = False [, $bUnderline = False [, $bStrikethru = False [, $hWndOwner = 0]]]]]]]] ) $iFontColorRef [optional] COLORREF rgbColors (Default is COLOR_BTNTEXT) ---- The above are the suggested changes ( in bold ) needed in the help file.
3:35 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
>For other device the @extended is always set With the new code, @extended is only triggered the 1st time as true(1) / BitAND($aCall[0], 0x1) 2nd time and on it returns false(0)
3:29 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
[…] The "keyboard" gets stuck in 0x8000. But do trigger the 0x8001 when pressed. Same with prior and next keys. Volume up/down are not "seen" ( captured by the OS ). My fight with the headset is at https://www.autoitscript.com/forum/topic/211304-getasynckeystate-_ispressed-vs-the-bluetooth-headset-now-fight/. I scratched my head for a while until I realized what was going on. And is a hard sell as far as getting enough people to accept this change given that is against MSDN recommendation ( 20 y/o ) and quite a niche occurrence. Yet, is the only thing that worked.

Jan 31, 2024:

4:35 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by J-Paul Mesnage
Hi, I am still confused on how you use @extended with a BlueTooth headset Can you post an example of how you you it? For other device the @extended is always set Thanks for the help

Jan 29, 2024:

6:24 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
..pardon. The description was correct, the code was wrong. (corrected above)
5:59 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
ok, I've got my head back. This would be the proper code: […] The @extended has the LSB. What is meant is that when the key is first pressed, the LSB is ON. On subsequent calls, the LSB is zero and the claim is to not trust the LSB (BitAND($aCall[0], 0x1)) due to the nature of multitasking, hence the BitAND($aCall[0], 0x8000) return. So the original description is in fact correct. But is not clear to a non-english native speaker like myself, therefore a better description would be: @extended returns the LSB of the keypress. (See MSDN remarks) that way, if the reader wants to know what it really is, can read up on the subject.

Jan 28, 2024:

7:18 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
...the above don't sit well with me. Is not so. I'll see it on Tuesday, I'll have a less foggy brain, then I'll have a look at it and discern it.
7:14 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
..I'm did a copy and paste and my math skill ..are missing from my brain =/ Then better use this less specific explanation: Return Value @extended returns whether the key is still pressed since the last call. (See MSDN remarks)
8:19 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by J-Paul Mesnage
Are you sure of 0xFFFF8000? Th least significant bit is 0xFFFF8001 right?

Jan 26, 2024:

5:43 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
Return Value @extended is set by least significant bit. The value specifies whether the key was pressed since the last call. (See MSDN remarks) See Also Search "https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getasynckeystate#remarks" in MSDN Library. Hopefully the above is sufficiently explicit.
4:14 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by J-Paul Mesnage
Thank you what do you propose for doc change for @extended?
10:51 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
As far as I've tested with various hardware, it works as expected. I don't foresee any problems. I know that it would generally be handled by: […] But the proposed @extended return, adds that extra GetAsyncKeyState info. that in these particular cases, just saves the day. By the way, in my testing, this solution is even better than using _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL,…
9:49 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by J-Paul Mesnage
Hi, thanks for those highlights Can you confirm that with the change you suggest no other equipment non BlueTooths will not have regression? it seems your post suggest it, I just want to be sure Thanks for the clarification Cheers
3:15 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
... And the explanation of MSDN gives out is true, but also is true that PCs are way faster than when the warning was presented some 20 years ago when 32 bit was the future and 16 bit was nothing but gone. Actually, one can not run 16 bit code in windows nowadays, it is gone. But the base code is thankfully, backwards compatible.
3:06 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
No one can tell what M$ is ever gonna do, but is by this feature that the code can tell that the key ( 0xB3 ) and those like it in multimedia ( 0xB0, 0xB1 ) are actively pressed via Bluetooth or not. If it's been there since Win95, I'll bet there's a lot of code depending on it and unlikely to change. In bluethooth keys, a long press is not the same as a single click/press or a double one. Some even have triple press/click, all with different functionality, faking/masquerading having independent keys, and I believe is a driver thing, but is the M$ driver. There is no alternate driver. --continue in next post--
12:09 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by J-Paul Mesnage
Are you sure that with this modification working for you we will not get regression as MSDn state […]

Jan 25, 2024:

7:27 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
BitAND($aCall[0], 0x8000) <> 0 vs $aCall[0] = 0xFFFF8000 On action(click/keypress) is 0xFFFF8001 or 0x00000000 The code returns if "BitAND($aCall[0], 0x8000) <> 0" am adding if "$aCall[0] = 0xFFFF8000" Unfortunately the only way to see somewhat what the effects are is to keep a key pressed until autorepeat kicks in on a keyboard to somewhat get the gist of it.
7:27 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by J-Paul Mesnage
I still don't understand […] if $aCall[0] = 0xFFFF8000 is true then BitAND($aCall[0], 0x8000) is also true so @extended is not needed as I say i don't have and headset so I cannot reproduce thanks to confirm
3:27 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum <argumentum@…>
( adding this just to get an email upon update )
3:12 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by argumentum
In my case the @extended is needed. @extended is not always true. Is only true after some MSec. The first query returns false unless it was triggered again. If you test it, you'll see that it does.

Jan 22, 2024:

9:50 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by J-Paul Mesnage
Hi, Sorry unless I get an correction to my post above I will close it

Jan 18, 2024:

8:53 AM Ticket #3991 (_SQLite_ForeignKeys) closed by J-Paul Mesnage
Completed: Added by revision [13030] in version: 3.3.17.0
12:11 AM Ticket #3989 (SplashOff() not being parsed correctly by SyntaxCheck Prod and Tidy) closed by J-Paul Mesnage
Wont Fix
12:10 AM Ticket #3982 (_ClipPutFile should not free memory) closed by J-Paul Mesnage
Works For Me: Sorry I will close and except another Ticket with a script repro

Jan 17, 2024:

6:49 PM Ticket #3982 (_ClipPutFile should not free memory) updated by Nine
There is not a systematic error when freeing the memory. It is a recommandation of MSDN. I think it should be enough.
5:11 PM Ticket #3991 (_SQLite_ForeignKeys) updated by Andreik
In the documentation it should be also included this for clarity. It is not possible to enable or disable foreign key constraints in the middle of a multi-statement transaction (when SQLite is not in autocommit mode). Attempting to do so does not return an error; it simply has no effect. It should also be specified that SQLite does not make any checks on previously inserted data. So enabling foreign keys does not trigger any warnings or errors for data that has been previously inserted in the database that would normally raise a foreign keys constraint error. This can be seen in this example: […]
4:34 PM Ticket #3991 (_SQLite_ForeignKeys) updated by J-Paul Mesnage
Owner, Status changed
Thanks I will commit the needed file with the doc
3:21 PM Ticket #3991 (_SQLite_ForeignKeys) created by Andreik
Foreign keys are supported by default by pretty much all important …
9:21 AM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by J-Paul Mesnage
Hi, I cannot test it but the code look strange If the @extended is set and the return is always true So why to set @extended is this case?

Jan 16, 2024:

10:24 PM Ticket #3982 (_ClipPutFile should not free memory) updated by J-Paul Mesnage
Just produce a script that will provide the error with the current implementation. for me the Clipget does not produce any error even if the the GlobalFree is executed before the CloseClipboard
5:04 PM Ticket #3982 (_ClipPutFile should not free memory) updated by Andreik
I don't know what can happen if you release the object owned by the system or specific cases that will cause an error but can we assume that Microsoft knows what they are talking about when they say that the object it's managed by the system? It might work in 99% of cases without any errors and produce an error in some niche cases. I think we should follow MSDN guidance and fix possible errors that might appear in some cases. It's just best practice.
4:16 PM Ticket #3989 (SplashOff() not being parsed correctly by SyntaxCheck Prod and Tidy) updated by J-Paul Mesnage
In fact the SolashOff without parenthesis is legal when assign to a variable. Local $v = SplashOff That the reason why Au3check and certainly Tidy don't flag the Function I don't think we can change that except in documentation More Autoit builtin functions have the same behavior ProgressOff

Jan 15, 2024:

5:00 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) updated by TicketCleanup
Version changed
Automatic ticket cleanup.
4:59 PM Ticket #3990 (_IsPressed() add "indicate whether the key has been pressed since the ...) created by argumentum
[…] The change adds some extra information that I found was needed …
9:06 AM Ticket #3989 (SplashOff() not being parsed correctly by SyntaxCheck Prod and Tidy) updated by J-Paul Mesnage
Component changed

Jan 14, 2024:

10:12 PM SplashOff_Bug.au3 attached to Ticket #3989 by guidtracker@…
Example script
10:11 PM Ticket #3989 (SplashOff() not being parsed correctly by SyntaxCheck Prod and Tidy) created by GUIDTracker
I have noticed that both the Syntax Checker and Tidy programs used in …

Jan 9, 2024:

5:37 PM Ticket #3985 (_ArrayDisplay() + $WS_EX_TOPMOST) closed by J-Paul Mesnage
Completed: Added by revision [13029] in version: 3.3.17.0
5:16 PM Ticket #3988 (_WinAPI_GetSystemPowerStatus does not provide full stats on Win 10) closed by J-Paul Mesnage
Completed: Added by revision [13028] in version: 3.3.17.0

Jan 8, 2024:

3:20 PM Ticket #3988 (_WinAPI_GetSystemPowerStatus does not provide full stats on Win 10) created by Nine
Starting from Win10, the forth byte of the structure returned by …
8:27 AM Ticket #3987 (Aut2Exe creates a temp folder without deleting it) updated by J-Paul Mesnage
Hi, Using the standard autoit installation and even scite compilation does not reproduce your concern so can you describe the environment you are running with?

Jan 7, 2024:

8:53 PM Ticket #3987 (Aut2Exe creates a temp folder without deleting it) created by lwc
3.3.9.11 …

Jan 5, 2024:

10:48 AM Ticket #3982 (_ClipPutFile should not free memory) updated by J-Paul Mesnage
I understand what you write again just post a repro script to show where the error can occur in what I post I don't see any error the _clipget get the right info
3:06 AM Ticket #3982 (_ClipPutFile should not free memory) updated by mLipok
Description changed
3:06 AM Ticket #3986 (Au3Check allows chars after ContinueCase but runtime triggers error) updated by mLipok
Description changed
3:04 AM Ticket #3986 (Au3Check allows chars after ContinueCase but runtime triggers error) updated by mLipok
Could you please upload fixed version to: https://www.autoitscript.com/autoit3/scite/download/beta_SciTE4AutoIt3 ?

Jan 4, 2024:

9:04 PM Ticket #3982 (_ClipPutFile should not free memory) updated by anonymous
The function _ClipPutFile() uses SetClipboardData. MSDN state that if SetClipboardData succeeds, the system owns the object identified by the hMem parameter. The application may not write to or free the data once ownership has been transferred to the system, but it can lock and read from the data until the CloseClipboard function is called.
4:52 PM Ticket #3982 (_ClipPutFile should not free memory) updated by J-Paul Mesnage
Owner, Status changed
Hi, I don't see any reason to change the UDF The following script work fine […]
Note: See TracTimeline for information about the timeline view.