{"id":4070,"date":"2024-02-27T11:50:51","date_gmt":"2024-02-27T16:50:51","guid":{"rendered":"https:\/\/redsweater.com\/blog\/?p=4070"},"modified":"2024-02-27T11:50:51","modified_gmt":"2024-02-27T16:50:51","slug":"fastscripts-3-3-mouse-automation","status":"publish","type":"post","link":"https:\/\/redsweater.com\/blog\/4070\/fastscripts-3-3-mouse-automation","title":{"rendered":"FastScripts 3.3: Mouse Automation"},"content":{"rendered":"<p>FastScripts 3.3 is now available on the <a href=\"https:\/\/redsweater.com\/fastscripts\/\">FastScripts home page<\/a>, or by selecting \u201cCheck for Update\u201d from the FastScripts menu.<\/p>\n<p>This update includes a major new premium scripting addition, facilitating mouse automation by providing a variety of new scripting commands, including a powerhouse for synthesizing clicks and drags:<\/p>\n<ul>\n<li><strong>click mouse<\/strong> simulates a mouse click at arbitrary point with params:\n<ul>\n<li><strong>at<\/strong> point<\/li>\n<li><strong>[with button]<\/strong> left, right, middle, N<\/li>\n<li><strong>[with click count]<\/strong> N<\/li>\n<li><strong>[dragging to]<\/strong> point (optional &#8211; infers a drag after clicking)\n<\/li>\n<li><strong>[with event cadence]<\/strong> N (imposes a delay between generated events)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Because synthesizing user events can easily conflict with inadvertent inputs from the actual user, FastScripts also supports a command to suppress user interaction while a script is running:<\/p>\n<ul>\n<li><strong>disable user interaction<\/strong>\n<ul>\n<li><strong>[with timeout]<\/strong> N (optional: seconds before re-enabling)<\/li>\n<\/ul>\n<\/li>\n<li><strong>enable user interaction<\/strong> (optional: in any case, user interaction will be re-enabled when the script finishes)<\/li>\n<\/ul>\n<p>When automating mouse events, the clicks, drags, and releases can happen so fast that it confuses or overwhelms some interface components. For this reason, FastScripts imposes a short delay between the generation and delivery of each individual event that makes up a requested automation command. I&#8217;m calling this delay the <strong>event cadence<\/strong>, and it can be overridden with a longer or shorter cadence by supplying a parameter to the <strong>click mouse<\/strong> command, or for the duration of a whole script by setting this property:<\/p>\n<ul>\n<li><strong>default event cadence<\/strong>\n<\/li>\n<\/ul>\n<p>Finally, there are two new properties for querying the state of the mouse and keyboard:<\/p>\n<ul>\n<li><strong>current mouse position<\/strong><\/li>\n<li><strong>current keyboard modifiers<\/strong><\/li>\n<\/ul>\n<p>On top of these new automation features, there are a few bug fixes and enhancements. Here is the complete list of changes in this update:<\/p>\n<p>Complete list of changes for this release:<\/p>\n<ul>\n<li>New Mouse Automation scripting additions for moving, clicking, and dragging the mouse<\/li>\n<li>Restore keyboard shortcuts for arrow navigation and deletion to search text field<\/li>\n<li>Fix a bug that could prevent the search field from being focused the first time the menu is displayed<\/li>\n<li>Fix a bug that prevented the &#8220;Open at login&#8221; checkbox from accurately reflecting the status<\/li>\n<li>Fix a possible crash when certain keystrokes are typed in the Keyboard Shortcuts preference pane<\/li>\n<li>Fix a bug that caused the FastScripts menu item to remain highlighted after navigating with arrow key<\/li>\n<li>Built-in crash reporter now detects crashes in script runner proceses<\/li>\n<\/ul>\n<p>If you enjoy FastScripts, please consider spreading the word on <a href=\"https:\/\/facebook.com\/fastscriptsapp\">Facebook<\/a> or <a href=\"http:\/\/twitter.com\/fastscripts\">Twitter<\/a>! Thanks for your support.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FastScripts 3.3 is now available on the FastScripts home page, or by selecting \u201cCheck for Update\u201d from the FastScripts menu. This update includes a major new premium scripting addition, facilitating mouse automation by providing a variety of new scripting commands, including a powerhouse for synthesizing clicks and drags: click mouse simulates a mouse click at [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,16],"tags":[],"class_list":["post-4070","post","type-post","status-publish","format-standard","hentry","category-fastscripts","category-red-sweater-news"],"_links":{"self":[{"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/posts\/4070","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/comments?post=4070"}],"version-history":[{"count":2,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/posts\/4070\/revisions"}],"predecessor-version":[{"id":4072,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/posts\/4070\/revisions\/4072"}],"wp:attachment":[{"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/media?parent=4070"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/categories?post=4070"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redsweater.com\/blog\/wp-json\/wp\/v2\/tags?post=4070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}