Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate

Stop Double-Click if too fast


  • Please log in to reply
20 replies to this topic
rmdaustin
  • Members
  • 6 posts
  • Last active: Aug 27 2011 12:56 PM
  • Joined: 24 Aug 2011
The problem has appeared again today, now blocking left click only in one application at a time (this time Visual Studio). Right click continues to work in that application, and clicks are normal everywhere else. When I close VS via right click close on the taskbar and restart it, normal mouse function is restored. I've verified that I'm running the 8/25 version of the script. Also happened once yesterday with the Autohotkey editor, but I thought maybe the old script was still running, so I ignored that.

Debug lines from right before I closed the application:

Script lines most recently executed (oldest first).  Press [F5] to refresh.  The seconds elapsed between a line and the one after it is in parentheses to the right (if not 0).  The bottommost line's elapsed time is the number of seconds since it executed.

152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
143: blockeddown = 
144: blockedup = 
145: LastMouseUp := A_ThisHotkey
146: LastMouseUp_ts := A_TickCount
147: Return (0.06)
089: Critical
090: di += 1
091: TimeSinceLastMouseDown := A_TickCount-LastMouseDown_ts
093: DoubleClickTooFast := TimeSinceLastMouseDown<=DoubleClickMin_ms
096: if (A_ThisHotkey==LastMouseDown && (DoubleClickTooFast || ClickAfterMouseUpTooSoon))  
106: Send,{%A_ThisHotkey% DownTemp} (0.02)
107: msg = 
Sent, {%A_ThisHotkey% DownTemp}

if (%A_ThisHotkey%==%LastMouseDown% && (%DoubleClickTooFast% || %ClickAfterMouseUpTooSoon%))
111: }
112: BuggyMouse_DebugMsg_down = %di%: %A_ThisHotkey%(%TimeSinceLastMouseDown%)%LastMouseDown%%msg%
113: msg = 
114: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
115: LastMouseDown := A_ThisHotkey
116: LastMouseDown_ts := A_TickCount
117: Return (0.08)
122: Critical
123: ui += 1
124: TimeSinceLastMouseUp := A_TickCount-LastMouseUp_ts
127: if (blockeddown)  
135: Send,{%A_ThisHotkey%} (0.01)
136: msg = 
Sent, {%A_ThisHotkey%}
137: }
139: BuggyMouse_DebugMsg_up = %ui%: %A_ThisHotkey%(%TimeSinceLastMouseUp%)%LastMouseUp%%msg%
140: msg = 
141: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
143: blockeddown = 
144: blockedup = 
145: LastMouseUp := A_ThisHotkey
146: LastMouseUp_ts := A_TickCount
147: Return (0.36)
089: Critical
090: di += 1
091: TimeSinceLastMouseDown := A_TickCount-LastMouseDown_ts
093: DoubleClickTooFast := TimeSinceLastMouseDown<=DoubleClickMin_ms
096: if (A_ThisHotkey==LastMouseDown && (DoubleClickTooFast || ClickAfterMouseUpTooSoon))  
106: Send,{%A_ThisHotkey% DownTemp}
107: msg = 
Sent, {%A_ThisHotkey% DownTemp}

if (%A_ThisHotkey%==%LastMouseDown% && (%DoubleClickTooFast% || %ClickAfterMouseUpTooSoon%))
111: }
112: BuggyMouse_DebugMsg_down = %di%: %A_ThisHotkey%(%TimeSinceLastMouseDown%)%LastMouseDown%%msg%
113: msg = 
114: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
115: LastMouseDown := A_ThisHotkey
116: LastMouseDown_ts := A_TickCount
117: Return (0.03)
122: Critical
123: ui += 1
124: TimeSinceLastMouseUp := A_TickCount-LastMouseUp_ts
127: if (blockeddown)  
135: Send,{%A_ThisHotkey%} (0.02)
136: msg = 
Sent, {%A_ThisHotkey%}
137: }
139: BuggyMouse_DebugMsg_up = %ui%: %A_ThisHotkey%(%TimeSinceLastMouseUp%)%LastMouseUp%%msg%
140: msg = 
141: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
143: blockeddown = 
144: blockedup = 
145: LastMouseUp := A_ThisHotkey
146: LastMouseUp_ts := A_TickCount
147: Return (0.08)
089: Critical
090: di += 1
091: TimeSinceLastMouseDown := A_TickCount-LastMouseDown_ts
093: DoubleClickTooFast := TimeSinceLastMouseDown<=DoubleClickMin_ms
096: if (A_ThisHotkey==LastMouseDown && (DoubleClickTooFast || ClickAfterMouseUpTooSoon))  
106: Send,{%A_ThisHotkey% DownTemp} (0.02)
107: msg = 
Sent, {%A_ThisHotkey% DownTemp}

if (%A_ThisHotkey%==%LastMouseDown% && (%DoubleClickTooFast% || %ClickAfterMouseUpTooSoon%))
111: }
112: BuggyMouse_DebugMsg_down = %di%: %A_ThisHotkey%(%TimeSinceLastMouseDown%)%LastMouseDown%%msg%
113: msg = 
114: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
115: LastMouseDown := A_ThisHotkey
116: LastMouseDown_ts := A_TickCount
117: Return (0.09)
122: Critical
123: ui += 1
124: TimeSinceLastMouseUp := A_TickCount-LastMouseUp_ts
127: if (blockeddown)  
135: Send,{%A_ThisHotkey%}
136: msg = 
Sent, {%A_ThisHotkey%}
137: }
139: BuggyMouse_DebugMsg_up = %ui%: %A_ThisHotkey%(%TimeSinceLastMouseUp%)%LastMouseUp%%msg%
140: msg = 
141: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
143: blockeddown = 
144: blockedup = 
145: LastMouseUp := A_ThisHotkey
146: LastMouseUp_ts := A_TickCount
147: Return (0.06)
089: Critical
090: di += 1
091: TimeSinceLastMouseDown := A_TickCount-LastMouseDown_ts
093: DoubleClickTooFast := TimeSinceLastMouseDown<=DoubleClickMin_ms
096: if (A_ThisHotkey==LastMouseDown && (DoubleClickTooFast || ClickAfterMouseUpTooSoon))  
106: Send,{%A_ThisHotkey% DownTemp} (0.01)
107: msg = 
Sent, {%A_ThisHotkey% DownTemp}

if (%A_ThisHotkey%==%LastMouseDown% && (%DoubleClickTooFast% || %ClickAfterMouseUpTooSoon%))
111: }
112: BuggyMouse_DebugMsg_down = %di%: %A_ThisHotkey%(%TimeSinceLastMouseDown%)%LastMouseDown%%msg%
113: msg = 
114: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
115: LastMouseDown := A_ThisHotkey
116: LastMouseDown_ts := A_TickCount
117: Return (0.41)
122: Critical
123: ui += 1
124: TimeSinceLastMouseUp := A_TickCount-LastMouseUp_ts
127: if (blockeddown)  
135: Send,{%A_ThisHotkey%} (0.02)
136: msg = 
Sent, {%A_ThisHotkey%}
137: }
139: BuggyMouse_DebugMsg_up = %ui%: %A_ThisHotkey%(%TimeSinceLastMouseUp%)%LastMouseUp%%msg%
140: msg = 
141: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
143: blockeddown = 
144: blockedup = 
145: LastMouseUp := A_ThisHotkey
146: LastMouseUp_ts := A_TickCount
147: Return (0.39)
089: Critical
090: di += 1
091: TimeSinceLastMouseDown := A_TickCount-LastMouseDown_ts
093: DoubleClickTooFast := TimeSinceLastMouseDown<=DoubleClickMin_ms
096: if (A_ThisHotkey==LastMouseDown && (DoubleClickTooFast || ClickAfterMouseUpTooSoon))  
106: Send,{%A_ThisHotkey% DownTemp} (0.01)
107: msg = 
Sent, {%A_ThisHotkey% DownTemp}

if (%A_ThisHotkey%==%LastMouseDown% && (%DoubleClickTooFast% || %ClickAfterMouseUpTooSoon%))
111: }
112: BuggyMouse_DebugMsg_down = %di%: %A_ThisHotkey%(%TimeSinceLastMouseDown%)%LastMouseDown%%msg%
113: msg = 
114: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
115: LastMouseDown := A_ThisHotkey
116: LastMouseDown_ts := A_TickCount
117: Return (0.41)
122: Critical
123: ui += 1
124: TimeSinceLastMouseUp := A_TickCount-LastMouseUp_ts
127: if (blockeddown)  
135: Send,{%A_ThisHotkey%} (0.01)
136: msg = 
Sent, {%A_ThisHotkey%}
137: }
139: BuggyMouse_DebugMsg_up = %ui%: %A_ThisHotkey%(%TimeSinceLastMouseUp%)%LastMouseUp%%msg%
140: msg = 
141: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
143: blockeddown = 
144: blockedup = 
145: LastMouseUp := A_ThisHotkey
146: LastMouseUp_ts := A_TickCount
147: Return (1.45)
089: Critical
090: di += 1
091: TimeSinceLastMouseDown := A_TickCount-LastMouseDown_ts
093: DoubleClickTooFast := TimeSinceLastMouseDown<=DoubleClickMin_ms
096: if (A_ThisHotkey==LastMouseDown && (DoubleClickTooFast || ClickAfterMouseUpTooSoon))  
106: Send,{%A_ThisHotkey% DownTemp} (0.02)
107: msg = 
Sent, {%A_ThisHotkey% DownTemp}

if (%A_ThisHotkey%==%LastMouseDown% && (%DoubleClickTooFast% || %ClickAfterMouseUpTooSoon%))
111: }
112: BuggyMouse_DebugMsg_down = %di%: %A_ThisHotkey%(%TimeSinceLastMouseDown%)%LastMouseDown%%msg%
113: msg = 
114: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
115: LastMouseDown := A_ThisHotkey
116: LastMouseDown_ts := A_TickCount
117: Return (0.09)
122: Critical
123: ui += 1
124: TimeSinceLastMouseUp := A_TickCount-LastMouseUp_ts
127: if (blockeddown)  
135: Send,{%A_ThisHotkey%}
136: msg = 
Sent, {%A_ThisHotkey%}
137: }
139: BuggyMouse_DebugMsg_up = %ui%: %A_ThisHotkey%(%TimeSinceLastMouseUp%)%LastMouseUp%%msg%
140: msg = 
141: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
143: blockeddown = 
144: blockedup = 
145: LastMouseUp := A_ThisHotkey
146: LastMouseUp_ts := A_TickCount
147: Return (0.25)
089: Critical
090: di += 1
091: TimeSinceLastMouseDown := A_TickCount-LastMouseDown_ts
093: DoubleClickTooFast := TimeSinceLastMouseDown<=DoubleClickMin_ms
096: if (A_ThisHotkey==LastMouseDown && (DoubleClickTooFast || ClickAfterMouseUpTooSoon))  
106: Send,{%A_ThisHotkey% DownTemp} (0.02)
107: msg = 
Sent, {%A_ThisHotkey% DownTemp}

if (%A_ThisHotkey%==%LastMouseDown% && (%DoubleClickTooFast% || %ClickAfterMouseUpTooSoon%))
111: }
112: BuggyMouse_DebugMsg_down = %di%: %A_ThisHotkey%(%TimeSinceLastMouseDown%)%LastMouseDown%%msg%
113: msg = 
114: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
115: LastMouseDown := A_ThisHotkey
116: LastMouseDown_ts := A_TickCount
117: Return (0.09)
122: Critical
123: ui += 1
124: TimeSinceLastMouseUp := A_TickCount-LastMouseUp_ts
127: if (blockeddown)  
135: Send,{%A_ThisHotkey%} (0.02)
136: msg = 
Sent, {%A_ThisHotkey%}
137: }
139: BuggyMouse_DebugMsg_up = %ui%: %A_ThisHotkey%(%TimeSinceLastMouseUp%)%LastMouseUp%%msg%
140: msg = 
141: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
143: blockeddown = 
144: blockedup = 
145: LastMouseUp := A_ThisHotkey
146: LastMouseUp_ts := A_TickCount
147: Return (0.20)
089: Critical
090: di += 1
091: TimeSinceLastMouseDown := A_TickCount-LastMouseDown_ts
093: DoubleClickTooFast := TimeSinceLastMouseDown<=DoubleClickMin_ms
096: if (A_ThisHotkey==LastMouseDown && (DoubleClickTooFast || ClickAfterMouseUpTooSoon))  
106: Send,{%A_ThisHotkey% DownTemp} (0.01)
107: msg = 
Sent, {%A_ThisHotkey% DownTemp}

if (%A_ThisHotkey%==%LastMouseDown% && (%DoubleClickTooFast% || %ClickAfterMouseUpTooSoon%))
111: }
112: BuggyMouse_DebugMsg_down = %di%: %A_ThisHotkey%(%TimeSinceLastMouseDown%)%LastMouseDown%%msg%
113: msg = 
114: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
115: LastMouseDown := A_ThisHotkey
116: LastMouseDown_ts := A_TickCount
117: Return (0.06)
122: Critical
123: ui += 1
124: TimeSinceLastMouseUp := A_TickCount-LastMouseUp_ts
127: if (blockeddown)  
135: Send,{%A_ThisHotkey%} (0.01)
136: msg = 
Sent, {%A_ThisHotkey%}
137: }
139: BuggyMouse_DebugMsg_up = %ui%: %A_ThisHotkey%(%TimeSinceLastMouseUp%)%LastMouseUp%%msg%
140: msg = 
141: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
143: blockeddown = 
144: blockedup = 
145: LastMouseUp := A_ThisHotkey
146: LastMouseUp_ts := A_TickCount
147: Return (0.08)
089: Critical
090: di += 1
091: TimeSinceLastMouseDown := A_TickCount-LastMouseDown_ts
093: DoubleClickTooFast := TimeSinceLastMouseDown<=DoubleClickMin_ms
096: if (A_ThisHotkey==LastMouseDown && (DoubleClickTooFast || ClickAfterMouseUpTooSoon))  
106: Send,{%A_ThisHotkey% DownTemp}
107: msg = 
Sent, {%A_ThisHotkey% DownTemp}

if (%A_ThisHotkey%==%LastMouseDown% && (%DoubleClickTooFast% || %ClickAfterMouseUpTooSoon%))
111: }
112: BuggyMouse_DebugMsg_down = %di%: %A_ThisHotkey%(%TimeSinceLastMouseDown%)%LastMouseDown%%msg%
113: msg = 
114: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
115: LastMouseDown := A_ThisHotkey
116: LastMouseDown_ts := A_TickCount
117: Return (0.09)
122: Critical
123: ui += 1
124: TimeSinceLastMouseUp := A_TickCount-LastMouseUp_ts
127: if (blockeddown)  
135: Send,{%A_ThisHotkey%}
136: msg = 
Sent, {%A_ThisHotkey%}
137: }
139: BuggyMouse_DebugMsg_up = %ui%: %A_ThisHotkey%(%TimeSinceLastMouseUp%)%LastMouseUp%%msg%
140: msg = 
141: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
143: blockeddown = 
144: blockedup = 
145: LastMouseUp := A_ThisHotkey
146: LastMouseUp_ts := A_TickCount
147: Return (0.36)
089: Critical
090: di += 1
091: TimeSinceLastMouseDown := A_TickCount-LastMouseDown_ts
093: DoubleClickTooFast := TimeSinceLastMouseDown<=DoubleClickMin_ms
096: if (A_ThisHotkey==LastMouseDown && (DoubleClickTooFast || ClickAfterMouseUpTooSoon))  
106: Send,{%A_ThisHotkey% DownTemp} (0.01)
107: msg = 
Sent, {%A_ThisHotkey% DownTemp}

if (%A_ThisHotkey%==%LastMouseDown% && (%DoubleClickTooFast% || %ClickAfterMouseUpTooSoon%))
111: }
112: BuggyMouse_DebugMsg_down = %di%: %A_ThisHotkey%(%TimeSinceLastMouseDown%)%LastMouseDown%%msg%
113: msg = 
114: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
115: LastMouseDown := A_ThisHotkey
116: LastMouseDown_ts := A_TickCount
117: Return (0.08)
122: Critical
123: ui += 1
124: TimeSinceLastMouseUp := A_TickCount-LastMouseUp_ts
127: if (blockeddown)  
135: Send,{%A_ThisHotkey%} (0.02)
136: msg = 
Sent, {%A_ThisHotkey%}
137: }
139: BuggyMouse_DebugMsg_up = %ui%: %A_ThisHotkey%(%TimeSinceLastMouseUp%)%LastMouseUp%%msg%
140: msg = 
141: Gosub,BuggyMouse_Debug
152: CoordMode,Tooltip
153: if (A_ThisLabel="BuggyMouse_Debug_ShowLastMsg" || (BuggyMouse_Debug && (!BuggyMouse_Debug_OnlyBlocked || (BuggyMouse_Debug_OnlyBlocked && (blockeddown||blockedup)))))  
158: ToolTip
159: }
160: Return
143: blockeddown = 
144: blockedup = 
145: LastMouseUp := A_ThisHotkey
146: LastMouseUp_ts := A_TickCount
147: Return (0.31)

Press [F5] to refresh.

(Edit) Just happened again. I tried Autohotkey|Reload Script and that didn't help. But if I close Autohotkey, the app again begins accepting clicks. If I then restart Autohotkey it continues to work (so far, at least). Since I've been editing this text (so a couple of minutes), when I just clicked back to Visual Studio, it is again not accepting left clicks (until I kill Autohotkey).

  • Guests
  • Last active:
  • Joined: --

I tried Autohotkey|Reload Script and that didn't help. But if I close Autohotkey, the app again begins accepting clicks.

...OK, I wish I had concrete steps to reproduce, then I could squash this bug, like I said, I have had it happen, in Firefox, but even I can't reliably reproduce it...especially not without that new code active.

I might even try to roll back the code to an older version, if I find one. I know I've never experienced this before the new code for the blocking click up was added (but I commented that code out {or tried too}).

When it happens again, instead of closing Visual Studio or "AutoHotkey" (it might be better to refer to it as the "Buggy Mouse Script", since "AutoHotkey" can host many scripts)...right click on the Buggy Mouse Script's tray icon, click Suspend Hotkeys, then click (at least) once inside Visual Studio (or the program not accepting clicks) & then again in the script's tray menu, click Suspend Hotkeys (to unsuspend them) (Ctrl+Shift+Win+Alt+F9 is currently a Hotkey to toggle Suspend, so you could use that instead of the tray icon menu)...that should clear out the problem, without closing any program. Somehow it just gets stuck, but it's not technically the script getting stuck (cuz a Reload don't fix it)...it's the program getting stuck with the mouse down & not allowing any more clicks until it sees the mouse up (you can't technically click again, until you release can you?...at least, that's what VS is thinking).

I desperately need to write good debug logging for this script. I need an actual debug log, cuz I don't think all those lines of code from ListLines is really gonna help me...it's too confusing & non-helpful (I know you're trying to help me -- it's not your fault those lines don't help me).

As one last desperate attempt to diagnose this, you have made sure that no other AutoHotkey scripts are running right?...& you are running Buggy-Mouse.ahk completely as-is & by itself, not pasting it into a larger script? I just want to eliminate those possibilities.

I hope you can reproduce it in something other than Visual Studio, since I don't have that program. You (or I) could even code up an AutoHotkey GUI where the buttons don't do anything, for testing.

I just found a version from 4-12-08...wayyy before that new feature...if you can reproduce it with that version, then the bug you are seeing is something that was always there...& never noticed. I might upload it later.

Hey, I just thought, what version of AHK are you testing in?

OK, I have a new version up with some logging. However, if it takes hours to reproduce the bug, the log file will be huge, I recommend pruning the log to the last 50-100 lines (leaving the top 2 lines intact tho). I also added a "problem" Hotkey to the script, currently it's Win+ScrollLock...you are supposed to run the script as normal & wait to notice the bug, when you notice it, press Win+ScrollLock to put a "*** PROBLEM ***" marker in the log, then I want you to click a few more times inside Visual Studio (or whatever program is ignoring mouse clicks)...then press Win+ScrollLock again to log another marker.

Page 2, so linking again...
Buggy-Mouse.ahk

rmdaustin
  • Members
  • 6 posts
  • Last active: Aug 27 2011 12:56 PM
  • Joined: 24 Aug 2011
I really appreciate the time you're putting in on this. I wish I could be more helpful, but I'm new to AutoHotkey and still trying to learn the syntax.

I'll be happy to try the new version and try to catch the problem in action, but right now the link to Buggy-Mouse.ahk is going to a blank page.

To answer your questions:

AutoHotkey v.1.1.02.02 (AutoHotkey_L installer, 64-bit Unicode)
Running on Windows 7 Ultimate 64-bit
I've been running the script tacked onto the default AutoHotkey script, which is essentially this:

#z::Run www.autohotkey.com

^!n::
IfWinExist Untitled - Notepad
	WinActivate
else
	Run Notepad
return

I didn't realize you could run more than one separately, but I'll start running it standalone from now on.

  • Guests
  • Last active:
  • Joined: --

...but right now the link to Buggy-Mouse.ahk is going to a blank page.

...yes, my host decided to let their HD fill up WHILE I was uploading new versions...which truncated (made the file 0 bytes) Buggy-Mouse.ahk...which wasn't a problem, cuz I can re-upload it, however after I fixed that problem, I noticed this other php script I use was truncated too...& I didn't have a backup of that file...however, thru intense, um, something, I have been able to recover a version of that php file from my hosts daily backup. WHEW! All my scripts should stop being blank soon.

Also, note I've never tried AHK_L...I really need to do that soon.

rmdaustin
  • Members
  • 6 posts
  • Last active: Aug 27 2011 12:56 PM
  • Joined: 24 Aug 2011
Okay, so running today's version of the Buggy-Mouse.ahk, directly with no other AutoHotkey scripts running. On my Vista machine (same setup as the Windows 7 one, 64-bit, AutoHotkey_L), immediately after installing the new script, I went to the Clicks Blocked dialog box and all the parenthesis were empty. However, at that point all left mouse clicks on the whole desktop (all applications + taskbar) were being blocked. Did the Win-Sroll Lock key to mark the log, then had to Ctrl-Alt-Del, Esc to get mouse function back. Resulting log:

Buggy-Mouse-2011-08-27.ahk   Started		Sat, Aug 27, 2011 --- 8/27/11 8:56:29AM
  Status		UpDn	  Key			Reason
	allowed		 Up 	LButton up		
	allowed		Down	RButton			
	allowed		 Up 	RButton up		
	allowed		Down	LButton			
	allowed		 Up 	LButton up		
	allowed		Down	LButton			
	allowed		 Up 	LButton up		
BLOCKED			Down	LButton			DoubleClickTooFast(16)(90)
BLOCKED			 Up 	LButton up		DoubleClickTooFast(16)(90)
BLOCKED			Down	LButton			DoubleClickTooFast(0)(90)
BLOCKED			 Up 	LButton up		DoubleClickTooFast(0)(90)
BLOCKED			Down	LButton			DoubleClickTooFast(0)(90)
BLOCKED			 Up 	LButton up		DoubleClickTooFast(0)(90)
BLOCKED			Down	LButton			DoubleClickTooFast(15)(90)
BLOCKED			 Up 	LButton up		DoubleClickTooFast(15)(90)
BLOCKED			Down	LButton			DoubleClickTooFast(0)(90)
BLOCKED			 Up 	LButton up		DoubleClickTooFast(0)(90)
BLOCKED			Down	LButton			DoubleClickTooFast(0)(90)
BLOCKED			 Up 	LButton up		DoubleClickTooFast(0)(90)
BLOCKED			Down	LButton			DoubleClickTooFast(0)(90)
BLOCKED			 Up 	LButton up		DoubleClickTooFast(0)(90)
BLOCKED			Down	LButton			DoubleClickTooFast(0)(90)
BLOCKED			 Up 	LButton up		DoubleClickTooFast(0)(90)
BLOCKED			Down	LButton			DoubleClickTooFast(0)(90)
BLOCKED			 Up 	LButton up		DoubleClickTooFast(0)(90)
BLOCKED			Down	LButton			DoubleClickTooFast(0)(90)
BLOCKED			 Up 	LButton up		DoubleClickTooFast(0)(90)
BLOCKED			Down	LButton			DoubleClickTooFast(0)(90)
BLOCKED			 Up 	LButton up		DoubleClickTooFast(0)(90)
	allowed		Down	RButton			
	allowed		 Up 	RButton up		
BLOCKED			Down	RButton			DoubleClickTooFast(15)(90)
BLOCKED			 Up 	RButton up		DoubleClickTooFast(15)(90)
	allowed		Down	LButton			
	allowed		 Up 	LButton up		
BLOCKED			Down	LButton			DoubleClickTooFast(15)(90)
BLOCKED			 Up 	LButton up		DoubleClickTooFast(15)(90)
*** PROBLEM ***
	allowed		Down	LButton			
	allowed		 Up 	LButton up		
	allowed		Down	RButton			
	allowed		 Up 	RButton up	
...

I tried the "simple" (non-"_L") AutoHotkey and the behavior seems the same.

On the Windows 7 machine, the behavior is very different, bordering on bizarre. In that one, I never see anything "BLOCKED" in the log file, even when (and after) blocking is clearly happening. Also, the stats never update--the parenthesis are always empty, like nothing is being blocked. Watching the log, whenever the cursor is in a blocked application, nothing is added to the log, but then when you click to a working application, the log suddently fills up with all the clicks that had not worked in that application (yet they all say "allowed").

Both these machines are on the same physical mouse and keyboard as I'm using a PS/2 KVM switch.

  • Guests
  • Last active:
  • Joined: --
Most of those blocked in the log have a 0 ms time...that's definitely fast enough to qualify for blocking.

Hrm, I just thought: since it's Win7 & Vista...perhaps UAC is getting in the way? Run Buggy-Mouse.ahk as Admin & see if it works better...it probably needs permission to block/allow mouse input in all programs. I've never tried it on Vista or Win7, I have XP.

...then had to Ctrl-Alt-Del, Esc to get mouse function back.

...when you are having trouble use Ctrl+Shift+Win+Alt+F9 to Suspend or Ctrl+Shift+Win+Alt+F12 to Exit Buggy-Mouse.ahk. There is also a commented-out F12 Hotkey, you might enable that while we are diagnosing this problem. Sometimes, in an Emergency, it's more reliable to press 1 Hotkey, than to press Ctrl+Shift+Win+Alt+F12.

I never see anything "BLOCKED" in the log file, even when (and after) blocking is clearly happening.

...BLOCKED means when Buggy Mouse actively blocked the input...but the input may be "not happening" for some other reason, like Buggy Mouse not having enough permission to send input to a specific window.

I may change the Win+ScrollLock Hotkey to ask you for a string to log along with the problem marker, then you can press it, type what you are about to do, then do it (click mouse, etc), then press the Hotkey again to mark that you are done & note anything odd.

I also have a...
Buggy-Mouse-Analyzer.ahk...it does not block, but generates a log. We could try that too?

Just to make sure: without Buggy-Mouse.ahk running, your mouse does double-click on a single-click? how often? from the logs, can you tell how many of the clicks are the "real ones" that should be blocked & how many are part of the bug? Do you have a non-buggy mouse to test with?