Timeline



Nov 10, 2022:

2:15 AM Ticket #3928 (WinWaitActive() prevents Raw Input's WM_INPUT messages from queueing ...) updated by anonymous
Incidentally, the documentation for GUIRegisterMsg states: > Warning: blocking of running user functions which executes window messages with commands such as "MsgBox()" can lead to unexpected behavior, the return to the system should be as fast as possible !!!
2:11 AM Ticket #3928 (WinWaitActive() prevents Raw Input's WM_INPUT messages from queueing ...) updated by AutoXenon
Windows automatically assign message queues for each process/thread. The message stays in the queue/inbox until the program gets around to processing them. Autoit is singlethreaded, it stands to reason that it has to switch between message handling and executing the script, internally we don't know how it splits the processing time other than that the program needs to respond to the window messages in their inbox every so often otherwise the OS will think that it has frozen.

Nov 9, 2022:

8:09 PM Ticket #3928 (WinWaitActive() prevents Raw Input's WM_INPUT messages from queueing ...) updated by nurupo
While making a reply to you I have noticed a small copy-paste mistake I have made in the How to use the example section, specifically that the step (3) shouldn't be there, as the step (3) only happens when the *Responsive() calls are uncommented. I ended up improving the reproducible example -- it now does the mouse wheel scrolling for you, making the mouse scrolling more consistent as it no longer depends on a human, no longer mice-specific, etc. The improved example also needs an updated explanation. Here is the new reproducible example: […] = How to use the example = == LessResponsive() == 1. Open Notepad, run the script and click on SciTE to make the SciTE window active 2. The script will do 5 mouse wheel scrolls per second for you, for the duration of 5 seconds 3. You should see the script activating Notepad window, writing current @MSEC into it, and activating the SciTE window back over and over again 4. After 5 seconds, the script should terminate on its own 5. Check the console output to see how many scrolls per second the script's message handler received. (In my case it's just 1!) 6. Take note of the window wait time printed to the console, we will need that for MoreResponsive() later on. (19ms for me, but it's fine if your is different) Here is what my output for the comparison: […] Notice that while the scripts sends 5 mouse wheel scroll messages via MouseWheel(), it receives a lot fewer of them per second. On my PC I receive just 1 mouse wheel scroll message per second, i.e. the other 4 of WM_INPUT mouse wheel messages are not being delivered, they are being discarded by AutoIt. The final number I get is 5 messages received when 25 were sent, so 20 messages got discarded in those 5 seconds. == MoreResponsive() == 1. Comment out LessResponsive() 2. Uncomment MoreResponsive() 3. Pass into MoreResponsive() the window wait time from the console output you got when running LessResponsive() (e.g. I got 19ms, so I pass 19) 4. Open Notepad, run the script and click on SciTE to make the SciTE window active 5. You should see the script activating Notepad window, writing current @MSEC into it, and activating the SciTE window back over and over again 6. After 5 seconds, the script should terminate on its own 7. Check the console output to see how many scrolls per second the script's message handler received. (In my case it's 5) Here is what my output for the comparison: […] Now the script receives a lot more scrolls per second. On my PC I'm getting all 5 of them. That's a huge increase in responsiveness! Also note how by the end of it, all 25 out of 25 mouse scroll messages are received. == Message queueing == What is more, when using MoreResponsive() (or even having all of *Responsive() commented out), if you scroll faster than OnMouseWheel() can keep up with, Autoit will start queueing the unprocessed WM_INPUT messages. You can simulate this by setting $SCROLLS_PER_SECOND to, for example, 50. Because onMouseWheel() takes 79ms to run, the script can process at most 1000/79 = 12.66 mouse wheel scrolls per second, so 50 is definitely faster than OnMouseWheel() can keep up with. You can see that in the case of MoreResponsive(), once the script stops scrolling as indicated by "Stopped scrolling!" in the output, OnMouseWheel() continues to get called until all of the queued up messages are processed, running way beyond the 5 seconds. This doesn't happen with LessResponsive(), somehow WinWaitActive() prevented the messages from queueing up. === LessResponsive() === Here is what my output of LessResponsive() with $SCROLLS_PER_SECOND = 50: […] As you can see, it still processes just 1 message per second and doesn't queue anything. By the end, only 5/250 messages were received. === MoreResponsive() === Here is what my output of MoreResponsive() with $SCROLLS_PER_SECOND = 50: […] You can see that the script kept receiving mouse scroll messages way after it stopped sending them, it stopped scrolling at 14:43:57 but was still catching up with receding the scroll messages up to 14:44:13, and it only stopped receiving them because all 250 of them were received. The script also took 20 seconds to run, not 5. So clearly AutoIt is queueing the messages in the case of MoreResponsive(). In fact, AutoIt queues them by default, which you can verify by having both *Reponsive() commented out. But in the case of LessResponsive(), WinWaitActive() somehow breaks the queueing, it breaks the expected default behavior. --- With all that said, I ask that you look into why WinWaitActive() makes the application less responsive, specifically, why when using it I get 1) fewer WM_INPUT messages being delivered and 2) WM_INPUT messages not queueing up at all, and I hope that this issue gets resolved in some future AutoIt version, if possible. Sorry for so much text!
6:59 AM Ticket #3929 (Memory leak when returning struct members within With...EndWith) updated by J-Paul Mesnage
Reporter changed
6:58 AM Ticket #3930 (DllStructs created in one scope gets dropped if chained with a ...) updated by J-Paul Mesnage
Reporter changed
1:02 AM Ticket #3930 (DllStructs created in one scope gets dropped if chained with a ...) created by AutoXenon
Original thread: …
12:54 AM Ticket #3929 (Memory leak when returning struct members within With...EndWith) created by AutoXenon
Original thread: …

Nov 8, 2022:

5:23 PM Ticket #3925 (With..EndWith should error out when associated with a DllStruct) updated by J-Paul Mesnage
Replying to anonymous: > Does that fix the memory leak or does it just prevent returning struct members from within a With? I can understand that is a new ticket so I leave this one close Just open a new ticket for the leak memory
9:15 AM Ticket #3928 (WinWaitActive() prevents Raw Input's WM_INPUT messages from queueing ...) updated by J-Paul Mesnage
Hi, Thanks for this long ticket with precise information to reproduce. In fact I don't understand the ...Responsive() function as without them I get best results In fact some time more than for MoreResponsive() Cheers
8:16 AM Ticket #825 (Change the behaviour of DirMove()) updated by Jos
Replying to anonymous: > We need DirRename function ...because? What is wrong with using DirMove() for that?
1:39 AM Ticket #825 (Change the behaviour of DirMove()) updated by anonymous
We need DirRename function

Nov 7, 2022:

4:34 AM Ticket #3928 (WinWaitActive() prevents Raw Input's WM_INPUT messages from queueing ...) created by nurupo
Calling into WinWaitActive() somehow results in 1) fewer WM_INPUT …

Nov 5, 2022:

9:18 AM Ticket #3925 (With..EndWith should error out when associated with a DllStruct) updated by anonymous
Does that fix the memory leak or does it just prevent returning struct members from within a With?

Nov 3, 2022:

9:44 AM Ticket #3925 (With..EndWith should error out when associated with a DllStruct) closed by J-Paul Mesnage
Fixed: Fixed by revision [12890] in version: 3.3.17.0
9:22 AM Ticket #3924 (Run-time error calling MyByRefFunc($map["foo"].bar) ==> Expected a ...) updated by J-Paul Mesnage
Owner, Status changed
9:22 AM Ticket #3922 (Problems with ".+" and ".+?" in regular expressions) updated by J-Paul Mesnage
Owner, Status changed
8:51 AM Ticket #3926 (_GUICtrlTreeView_SetChildren functionality has changed) closed by J-Paul Mesnage
Fixed: Fixed by revision [12889] in version: 3.3.17.0

Nov 2, 2022:

5:25 PM Ticket #3926 (_GUICtrlTreeView_SetChildren functionality has changed) created by office@…
https://www.autoitscript.com/forum/topic/209115-_guictrltreeview_setchi

Oct 28, 2022:

6:27 PM Ticket #3925 (With..EndWith should error out when associated with a DllStruct) updated by anonymous
Replying to anonymous: > doesn't address the memory leak though Forgot to paste the code from the original thread: […]
6:23 PM Ticket #3925 (With..EndWith should error out when associated with a DllStruct) updated by anonymous
doesn't address the memory leak though

Oct 27, 2022:

4:03 PM Ticket #3925 (With..EndWith should error out when associated with a DllStruct) updated by J-Paul Mesnage
For me only the doc can be improved as $v.string is a valid expression […]
10:23 AM Ticket #3925 (With..EndWith should error out when associated with a DllStruct) updated by jchd18
Summary changed
10:22 AM Ticket #3925 (With..EndWith should error out when associated with a DllStruct) updated by jchd18
Description changed
10:20 AM Ticket #3925 (With..EndWith should error out when associated with a DllStruct) created by jchd18
With $X is specified to work only if $X is an object. Instead it …

Oct 26, 2022:

12:20 PM Ticket #3922 (Problems with ".+" and ".+?" in regular expressions) updated by aacn
Hi all, it seems that one description should be changed, the last 10 megabytes should be the "length". When the front part of the string exceeds this length, or the latter part exceeds this length, it will affect the matching of .+ and .+? respectively.

Oct 21, 2022:

7:01 AM Ticket #3924 (Run-time error calling MyByRefFunc($map["foo"].bar) ==> Expected a ...) updated by Jos
Milestone changed
7:00 AM Ticket #3924 (Run-time error calling MyByRefFunc($map["foo"].bar) ==> Expected a ...) reopened by Jos
Replying to nurupo: > I'm a bit confused with your reply. You have linked to the Au3Check.exe, but this is a run-time issue, the application runs and then crashes after encountering this issue, it's not the Au3Check.exe linter issue. The one in 3902 is the linter issue, but not this one. Ah yes, you are right ... sorry about that and will correct my answer.
2:26 AM Ticket #3924 (Run-time error calling MyByRefFunc($map["foo"].bar) ==> Expected a ...) updated by nurupo
I'm a bit confused with your reply. You have linked to the Au3Check.exe, but this is a run-time issue, the application runs and then crashes after encountering this issue, it's not the Au3Check.exe linter issue. The one in 3902 is the linter issue, but not this one.

Oct 20, 2022:

1:04 PM Ticket #3924 (Run-time error calling MyByRefFunc($map["foo"].bar) ==> Expected a ...) updated by Jos
Milestone changed
7:56 AM Ticket #3902 (Au3Check, Byref, Map.element) updated by Jos
Milestone changed
7:54 AM Ticket #3924 (Run-time error calling MyByRefFunc($map["foo"].bar) ==> Expected a ...) closed by Jos
Fixed: EDIT: this is indeed an AutoIt3 internal issue..
7:51 AM Ticket #3902 (Au3Check, Byref, Map.element) updated by Jos
Replying to nurupo <nurupo.contributions@…>: > >Fixed by revision [12847] in version: 3.3.16.1 > > Did the fix not make it into 3.3.16.1 for some reason? It's also not mentioned in the changelog. Correct... that TAG is wrong and the fix will be in the next Beta/Prod versions as 3.3.16.1 is just a fix release for some AutoIt3 issues You could use the current Alpha version I posted here till either a new Beta or Prod version of AutoIt3 is published: ​https://www.autoitscript.com/autoit3/scite/download/beta_SciTE4AutoIt3/Au3Check.exe
12:50 AM Ticket #3924 (Run-time error calling MyByRefFunc($map["foo"].bar) ==> Expected a ...) created by nurupo
The following causes a run-time error: […] You have to use [] …

Oct 19, 2022:

11:44 PM Ticket #3902 (Au3Check, Byref, Map.element) updated by nurupo <nurupo.contributions@…>
>Fixed by revision [12847] in version: 3.3.16.1 I have 3.3.16.1 installed and this is not fixed, AU3Check still errors: […] Did the fix not make it into 3.3.16.1 for some reason? It's also not mentioned in the changelog.
8:34 AM Ticket #3921 (Help file - missing examples) closed by J-Paul Mesnage
Fixed: Fixed by revision [12885] in version: 3.3.17.0
8:16 AM Ticket #3923 (Typo in help file) closed by J-Paul Mesnage
Fixed: Fixed by revision [12884] in version: 3.3.17.0

Oct 18, 2022:

10:29 PM Ticket #3923 (Typo in help file) created by pferrucci@…
In page "Send Key list" look for string "If you with", => should be "wish".

Oct 11, 2022:

7:42 AM Ticket #3922 (Problems with ".+" and ".+?" in regular expressions) created by aacn
My English is not good, please forgive me, I have to use google …
Note: See TracTimeline for information about the timeline view.