<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[LA/QM forum - Help (LA)]]></title>
		<link>https://www.libreautomate.com/forum/</link>
		<description><![CDATA[LA/QM forum - https://www.libreautomate.com/forum]]></description>
		<pubDate>Thu, 30 Apr 2026 06:09:06 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Error with send text]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7943</link>
			<pubDate>Tue, 21 Apr 2026 03:51:36 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1621">fablefox</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7943</guid>
			<description><![CDATA[This is the script:<br />
<br />
<div class="codeblock"><div class="title">C# code: <div class="float_right"><a href="#" onclick="copyCode(this); return false;">Copy</a></div></div><div class="body" dir="ltr"><code class="prettyprint">var w = wnd.find(1, "*(mysql)").Activate();<br />
keys.send(@"mysqlsh");<br />
<br />
wait.s(1); //wait 1 seconds<br />
<br />
// press enter<br />
keys.send(@"Enter");<br />
<br />
<br />
<br />
wait.s(5); //wait 5 seconds<br />
<br />
// check ClusterSet Status<br />
<br />
keys.send(@"var clusterset = dba.getClusterSet()");<br />
<br />
wait.s(1); //wait 5 seconds<br />
<br />
keys.send(@"clusterset.status()");<br />
<br />
wait.s(1); //wait 5 seconds</code></div></div>
<br />
And I got this error:<br />
<br />
<div class="codeblock"><div class="title">C# code: <div class="float_right"><a href="#" onclick="copyCode(this); return false;">Copy</a></div></div><div class="body" dir="ltr"><code class="prettyprint">System.ArgumentException: Error in keys string: var clusterset = dba.get■ClusterSet■()<br />
   at line 23 in {removed).cs<br />
   &gt;&gt;<br />
   --- Raw stack trace ---<br />
   at Au.keys.AddKeys(String keys_)<br />
   at Au.keys.Add(KKeysEtc[] keysEtc)<br />
   at Au.keys.send(KKeysEtc[] keysEtc)<br />
   at Program.&lt;Main&gt;&#36;(String[] args) in (removed):line 23</code></div></div>
<br />
I got success with mysqlsh and automated press of enter, so not sure why the next string after pressing enter got an error.]]></description>
			<content:encoded><![CDATA[This is the script:<br />
<br />
<div class="codeblock"><div class="title">C# code: <div class="float_right"><a href="#" onclick="copyCode(this); return false;">Copy</a></div></div><div class="body" dir="ltr"><code class="prettyprint">var w = wnd.find(1, "*(mysql)").Activate();<br />
keys.send(@"mysqlsh");<br />
<br />
wait.s(1); //wait 1 seconds<br />
<br />
// press enter<br />
keys.send(@"Enter");<br />
<br />
<br />
<br />
wait.s(5); //wait 5 seconds<br />
<br />
// check ClusterSet Status<br />
<br />
keys.send(@"var clusterset = dba.getClusterSet()");<br />
<br />
wait.s(1); //wait 5 seconds<br />
<br />
keys.send(@"clusterset.status()");<br />
<br />
wait.s(1); //wait 5 seconds</code></div></div>
<br />
And I got this error:<br />
<br />
<div class="codeblock"><div class="title">C# code: <div class="float_right"><a href="#" onclick="copyCode(this); return false;">Copy</a></div></div><div class="body" dir="ltr"><code class="prettyprint">System.ArgumentException: Error in keys string: var clusterset = dba.get■ClusterSet■()<br />
   at line 23 in {removed).cs<br />
   &gt;&gt;<br />
   --- Raw stack trace ---<br />
   at Au.keys.AddKeys(String keys_)<br />
   at Au.keys.Add(KKeysEtc[] keysEtc)<br />
   at Au.keys.send(KKeysEtc[] keysEtc)<br />
   at Program.&lt;Main&gt;&#36;(String[] args) in (removed):line 23</code></div></div>
<br />
I got success with mysqlsh and automated press of enter, so not sure why the next string after pressing enter got an error.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[How I gave AI full control of a Windows machine using LibreAutomate]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7942</link>
			<pubDate>Mon, 20 Apr 2026 02:57:53 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1537">birdywen</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7942</guid>
			<description><![CDATA[Hi everyone,<br />
I want to share a project that started as a simple experiment and turned into something genuinely powerful. And I want to thank Gintaras — without LibreAutomate and his 20+ years of dedication, none of this would have been possible.<br />
<span style="font-weight: bold;" class="mycode_b">The goal:</span> Give an AI (Claude) the ability to see, control, and automate a Windows desktop — not through pre-built plugins, but with true, unlimited capability.<br />
<span style="font-weight: bold;" class="mycode_b">The setup:</span><br />
I have three machines working together:<ul class="mycode_list"><li>A Mac running Claude as the “brain”<br />
</li>
<li>An Oracle Linux cloud server<br />
</li>
<li>A Windows Surface Pad running LibreAutomate as the “eyes and hands”<br />
</li>
</ul>
The Surface Pad sits always-on with a bore tunnel (fixed port) exposing LibreAutomate’s HTTP Server to the outside. Claude connects from the Mac through this tunnel.<br />
<span style="font-weight: bold;" class="mycode_b">How it works:</span><br />
We started with the HTTP Server recipe from the LA cookbook — the one that maps URL paths to C# static methods. We added basic endpoints: <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Ping</code></div></div>, <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ScreenInfo</code></div></div>, <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ListWindows</code></div></div>, <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ClickAt</code></div></div>, <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>TypeText</code></div></div>, <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>SendKeys</code></div></div>, <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>RunProgram</code></div></div>.<br />
But the real breakthrough came when we added a <span style="font-weight: bold;" class="mycode_b">Code</span> endpoint, using Gintaras’s <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>CsScript</code></div></div> class from <a href="https://www.libreautomate.com/forum/showthread.php?tid=7491" target="_blank" rel="noopener" class="mycode_url">this forum post</a>. This uses Roslyn to compile and execute arbitrary C# code at runtime.<br />
Now Claude can POST any C# code to the Surface and it gets compiled and executed instantly. The code has full access to the entire Au.dll API — all 280+ classes. That means:<ul class="mycode_list"><li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>wnd</code></div></div> — find, move, resize, close any window<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elm</code></div></div> — read and interact with any UI element in any application<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>keys</code></div></div> / <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mouse</code></div></div> — type text, send hotkeys, click anywhere<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ocr</code></div></div> — read text from the screen<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>uiimage</code></div></div> — find images on screen<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>clipboard</code></div></div> — read/write clipboard<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>filesystem</code></div></div> — full file system access<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>process</code></div></div> / <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>run</code></div></div> — launch and manage programs<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>screen</code></div></div> / <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>CaptureScreen</code></div></div> — screen information and screenshots<br />
</li>
<li>And hundreds more…<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">A concrete example:</span><br />
Claude sends this HTTP request:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>POST http://bore.pub:14455/Code<br />
Content-Type: text/plain<br />
<br />
var asm = System.Reflection.Assembly.LoadFrom(@"C:&#92;Program Files&#92;LibreAutomate&#92;Au.dll");<br />
var types = asm.GetExportedTypes();<br />
return &#36;"Au.dll has {types.Length} public types";</code></div></div>And gets back:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>{"success":true,"result":"Au.dll has 280 public types"}</code></div></div>It can query the screen:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>var w = wnd.active;<br />
return w.Name + " | " + w.Rect.ToString();</code></div></div>It can check disk space, list windows, click buttons, type text — anything. The AI writes C# on the fly, LibreAutomate compiles and runs it in ~100ms, and returns the result. No pre-defined tool list. No plugins. No boundaries.<br />
<span style="font-weight: bold;" class="mycode_b">Why LibreAutomate is uniquely suited for this:</span><br />
I evaluated many automation tools. Nothing else comes close. Here’s why:<br />
<ol type="1" class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Depth of API</span> — Au.dll covers four layers: Win32 API, COM, UI Automation, and keyboard/mouse simulation. If one layer can’t reach something, another can.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Full .NET ecosystem</span> — It’s real C#, not a toy scripting language. NuGet packages, LINQ, async/await, everything works.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">The HTTP Server recipe</span> — This was the key enabler. A built-in way to expose C# functions over HTTP, with clean request/response handling.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">CsScript / Roslyn integration</span> — Runtime compilation turns LibreAutomate from a “toolbox” into a “universal execution engine.”<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">20 years of battle-testing</span> — From Quick Macros to LibreAutomate, Gintaras has solved every edge case. The API is powerful yet concise. It just works.<br />
</li>
</ol>
<span style="font-weight: bold;" class="mycode_b">The architecture comparison:</span><br />
Many people use MCP (Model Context Protocol) to connect AI to tools. MCP defines fixed tools — you get 10 tools, you can do 10 things. Our approach is fundamentally different. We give the AI one endpoint (Code) and the entire .NET + Au.dll universe behind it. It’s like giving someone a full kitchen instead of a cookbook with 10 recipes.<br />
<span style="font-weight: bold;" class="mycode_b">What’s next:</span><ul class="mycode_list"><li>Screenshot endpoint — so the AI can “see” the screen<br />
</li>
<li>File transfer — pull files from Windows back to Mac<br />
</li>
<li>Long-running task support — async execution with polling<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Thank you, Gintaras</span><br />
I want to end with genuine gratitude. Gintaras has been building automation tools since 2002. He responds to forum posts personally. He shares code like CsScript freely. LibreAutomate is free and open source. The quality of Au.dll is extraordinary — 280+ classes, each one polished and well-designed.<br />
Without LibreAutomate, I would have had to cobble together AutoHotkey, PyAutoGUI, Windows API wrappers, and a dozen other tools — and the result would have been fragile and limited. With LibreAutomate, I got everything in one coherent package, with an HTTP server built in, and Roslyn compilation ready to go.<br />
This project proves that LibreAutomate isn’t just a macro recorder or a simple automation tool. It’s a full operating system-level automation framework that can serve as the hands and eyes for an AI brain. That’s an incredible achievement for a tool made by one person over two decades.<br />
Thank you, Gintaras. You made this possible.]]></description>
			<content:encoded><![CDATA[Hi everyone,<br />
I want to share a project that started as a simple experiment and turned into something genuinely powerful. And I want to thank Gintaras — without LibreAutomate and his 20+ years of dedication, none of this would have been possible.<br />
<span style="font-weight: bold;" class="mycode_b">The goal:</span> Give an AI (Claude) the ability to see, control, and automate a Windows desktop — not through pre-built plugins, but with true, unlimited capability.<br />
<span style="font-weight: bold;" class="mycode_b">The setup:</span><br />
I have three machines working together:<ul class="mycode_list"><li>A Mac running Claude as the “brain”<br />
</li>
<li>An Oracle Linux cloud server<br />
</li>
<li>A Windows Surface Pad running LibreAutomate as the “eyes and hands”<br />
</li>
</ul>
The Surface Pad sits always-on with a bore tunnel (fixed port) exposing LibreAutomate’s HTTP Server to the outside. Claude connects from the Mac through this tunnel.<br />
<span style="font-weight: bold;" class="mycode_b">How it works:</span><br />
We started with the HTTP Server recipe from the LA cookbook — the one that maps URL paths to C# static methods. We added basic endpoints: <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Ping</code></div></div>, <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ScreenInfo</code></div></div>, <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ListWindows</code></div></div>, <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ClickAt</code></div></div>, <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>TypeText</code></div></div>, <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>SendKeys</code></div></div>, <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>RunProgram</code></div></div>.<br />
But the real breakthrough came when we added a <span style="font-weight: bold;" class="mycode_b">Code</span> endpoint, using Gintaras’s <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>CsScript</code></div></div> class from <a href="https://www.libreautomate.com/forum/showthread.php?tid=7491" target="_blank" rel="noopener" class="mycode_url">this forum post</a>. This uses Roslyn to compile and execute arbitrary C# code at runtime.<br />
Now Claude can POST any C# code to the Surface and it gets compiled and executed instantly. The code has full access to the entire Au.dll API — all 280+ classes. That means:<ul class="mycode_list"><li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>wnd</code></div></div> — find, move, resize, close any window<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>elm</code></div></div> — read and interact with any UI element in any application<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>keys</code></div></div> / <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mouse</code></div></div> — type text, send hotkeys, click anywhere<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ocr</code></div></div> — read text from the screen<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>uiimage</code></div></div> — find images on screen<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>clipboard</code></div></div> — read/write clipboard<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>filesystem</code></div></div> — full file system access<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>process</code></div></div> / <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>run</code></div></div> — launch and manage programs<br />
</li>
<li><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>screen</code></div></div> / <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>CaptureScreen</code></div></div> — screen information and screenshots<br />
</li>
<li>And hundreds more…<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">A concrete example:</span><br />
Claude sends this HTTP request:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>POST http://bore.pub:14455/Code<br />
Content-Type: text/plain<br />
<br />
var asm = System.Reflection.Assembly.LoadFrom(@"C:&#92;Program Files&#92;LibreAutomate&#92;Au.dll");<br />
var types = asm.GetExportedTypes();<br />
return &#36;"Au.dll has {types.Length} public types";</code></div></div>And gets back:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>{"success":true,"result":"Au.dll has 280 public types"}</code></div></div>It can query the screen:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>var w = wnd.active;<br />
return w.Name + " | " + w.Rect.ToString();</code></div></div>It can check disk space, list windows, click buttons, type text — anything. The AI writes C# on the fly, LibreAutomate compiles and runs it in ~100ms, and returns the result. No pre-defined tool list. No plugins. No boundaries.<br />
<span style="font-weight: bold;" class="mycode_b">Why LibreAutomate is uniquely suited for this:</span><br />
I evaluated many automation tools. Nothing else comes close. Here’s why:<br />
<ol type="1" class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Depth of API</span> — Au.dll covers four layers: Win32 API, COM, UI Automation, and keyboard/mouse simulation. If one layer can’t reach something, another can.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Full .NET ecosystem</span> — It’s real C#, not a toy scripting language. NuGet packages, LINQ, async/await, everything works.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">The HTTP Server recipe</span> — This was the key enabler. A built-in way to expose C# functions over HTTP, with clean request/response handling.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">CsScript / Roslyn integration</span> — Runtime compilation turns LibreAutomate from a “toolbox” into a “universal execution engine.”<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">20 years of battle-testing</span> — From Quick Macros to LibreAutomate, Gintaras has solved every edge case. The API is powerful yet concise. It just works.<br />
</li>
</ol>
<span style="font-weight: bold;" class="mycode_b">The architecture comparison:</span><br />
Many people use MCP (Model Context Protocol) to connect AI to tools. MCP defines fixed tools — you get 10 tools, you can do 10 things. Our approach is fundamentally different. We give the AI one endpoint (Code) and the entire .NET + Au.dll universe behind it. It’s like giving someone a full kitchen instead of a cookbook with 10 recipes.<br />
<span style="font-weight: bold;" class="mycode_b">What’s next:</span><ul class="mycode_list"><li>Screenshot endpoint — so the AI can “see” the screen<br />
</li>
<li>File transfer — pull files from Windows back to Mac<br />
</li>
<li>Long-running task support — async execution with polling<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Thank you, Gintaras</span><br />
I want to end with genuine gratitude. Gintaras has been building automation tools since 2002. He responds to forum posts personally. He shares code like CsScript freely. LibreAutomate is free and open source. The quality of Au.dll is extraordinary — 280+ classes, each one polished and well-designed.<br />
Without LibreAutomate, I would have had to cobble together AutoHotkey, PyAutoGUI, Windows API wrappers, and a dozen other tools — and the result would have been fragile and limited. With LibreAutomate, I got everything in one coherent package, with an HTTP server built in, and Roslyn compilation ready to go.<br />
This project proves that LibreAutomate isn’t just a macro recorder or a simple automation tool. It’s a full operating system-level automation framework that can serve as the hands and eyes for an AI brain. That’s an incredible achievement for a tool made by one person over two decades.<br />
Thank you, Gintaras. You made this possible.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[resize a control]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7941</link>
			<pubDate>Wed, 15 Apr 2026 20:52:05 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1376">cuitino</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7941</guid>
			<description><![CDATA[I know this may seem very simple, but I have been having a tough time finding a way to resize an accessible object control.<br />
Is there a way to convert an Elm into a wnd to have to option to resize?<br />
The only available properties of this specific control are role and @id]]></description>
			<content:encoded><![CDATA[I know this may seem very simple, but I have been having a tough time finding a way to resize an accessible object control.<br />
Is there a way to convert an Elm into a wnd to have to option to resize?<br />
The only available properties of this specific control are role and @id]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[PostMessage to simulate mouse click]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7940</link>
			<pubDate>Fri, 27 Mar 2026 19:02:03 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1376">cuitino</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7940</guid>
			<description><![CDATA[Hello,<br />
I am attempting to simulate mouse click using PostMessage approach so that the cursor does not move.<br />
I have been successful doing so from a local level.<br />
However, when I attempt to create a function from global Class file global.cs, I get the following error:<br />
<br />
System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (0x8007000B)<br />
<br />
the error is pointing to line: <br />
     ScreenToClient(Parent_hwnd,ref ControlPoint);<br />
<br />
I am calling the function like the following:<br />
   var w = wnd.find(1, "Wind");<br />
   var e = w.Elm["STATICTEXT", "Text"].Find(1);<br />
   LeftClick(w.Handle,e.Rect.CenterX,e.Rect.CenterY);<br />
 <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>public static uint WM_LBUTTONDOWN = 0x0201;<br />
public static uint WM_LBUTTONUP = 0x0202;<br />
<br />
public static void LeftClick( nint Parent_hwnd, int Control_CenterX, int Control_CenterY) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;POINT ControlPoint = new POINT(Control_CenterX, Control_CenterY);<br />
&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#36;"X: {ControlPoint.x}, Y: {ControlPoint.y}");<br />
&nbsp;&nbsp;&nbsp;&nbsp;ScreenToClient(Parent_hwnd,ref ControlPoint);<br />
&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#36;"X: {ControlPoint.x}, Y: {ControlPoint.y}");<br />
&nbsp;&nbsp;&nbsp;&nbsp;PostMessage(Parent_hwnd, WM_LBUTTONDOWN, 1,MakeLParam(ControlPoint.x, ControlPoint.y));<br />
&nbsp;&nbsp;&nbsp;&nbsp;PostMessage(Parent_hwnd, WM_LBUTTONUP, 0,MakeLParam(ControlPoint.x, ControlPoint.y));<br />
}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;[DllImport("user32.dll")]<br />
&nbsp;&nbsp;&nbsp;&nbsp;static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;unsafe static int MakeLParam(int x, int y) =&gt; (y &lt;&lt; 16) | (x &amp; 0xFFFF);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;static extern bool ScreenToClient(IntPtr hWnd, ref POINT lpPoint);</code></div></div>]]></description>
			<content:encoded><![CDATA[Hello,<br />
I am attempting to simulate mouse click using PostMessage approach so that the cursor does not move.<br />
I have been successful doing so from a local level.<br />
However, when I attempt to create a function from global Class file global.cs, I get the following error:<br />
<br />
System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (0x8007000B)<br />
<br />
the error is pointing to line: <br />
     ScreenToClient(Parent_hwnd,ref ControlPoint);<br />
<br />
I am calling the function like the following:<br />
   var w = wnd.find(1, "Wind");<br />
   var e = w.Elm["STATICTEXT", "Text"].Find(1);<br />
   LeftClick(w.Handle,e.Rect.CenterX,e.Rect.CenterY);<br />
 <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>public static uint WM_LBUTTONDOWN = 0x0201;<br />
public static uint WM_LBUTTONUP = 0x0202;<br />
<br />
public static void LeftClick( nint Parent_hwnd, int Control_CenterX, int Control_CenterY) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;POINT ControlPoint = new POINT(Control_CenterX, Control_CenterY);<br />
&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#36;"X: {ControlPoint.x}, Y: {ControlPoint.y}");<br />
&nbsp;&nbsp;&nbsp;&nbsp;ScreenToClient(Parent_hwnd,ref ControlPoint);<br />
&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#36;"X: {ControlPoint.x}, Y: {ControlPoint.y}");<br />
&nbsp;&nbsp;&nbsp;&nbsp;PostMessage(Parent_hwnd, WM_LBUTTONDOWN, 1,MakeLParam(ControlPoint.x, ControlPoint.y));<br />
&nbsp;&nbsp;&nbsp;&nbsp;PostMessage(Parent_hwnd, WM_LBUTTONUP, 0,MakeLParam(ControlPoint.x, ControlPoint.y));<br />
}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;[DllImport("user32.dll")]<br />
&nbsp;&nbsp;&nbsp;&nbsp;static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;unsafe static int MakeLParam(int x, int y) =&gt; (y &lt;&lt; 16) | (x &amp; 0xFFFF);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;static extern bool ScreenToClient(IntPtr hWnd, ref POINT lpPoint);</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Synchronizing key LA files across multiple computers]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7939</link>
			<pubDate>Thu, 26 Mar 2026 10:04:03 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1516">Davider</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7939</guid>
			<description><![CDATA[I have several computers with LA installed. One of them is the main machine, and the others need to automatically synchronize the key LA files from the main machine whenever changes occur (excluding the <span style="font-weight: bold;" class="mycode_b">nuget</span> folder).<br />
 <span style="font-weight: bold;" class="mycode_b">Several computers are on the same local area network, within the same IP address range.</span><br />
<br />
Currently, I’m using a copy-and-paste approach. I’d like to implement a more elegant solution using triggers, or explore any better alternatives.<br />
<br />
Thanks in advance for any suggestions and help.]]></description>
			<content:encoded><![CDATA[I have several computers with LA installed. One of them is the main machine, and the others need to automatically synchronize the key LA files from the main machine whenever changes occur (excluding the <span style="font-weight: bold;" class="mycode_b">nuget</span> folder).<br />
 <span style="font-weight: bold;" class="mycode_b">Several computers are on the same local area network, within the same IP address range.</span><br />
<br />
Currently, I’m using a copy-and-paste approach. I’d like to implement a more elegant solution using triggers, or explore any better alternatives.<br />
<br />
Thanks in advance for any suggestions and help.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Systray]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7937</link>
			<pubDate>Mon, 09 Mar 2026 19:56:01 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=12">_pi</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7937</guid>
			<description><![CDATA[Is it possible to add an own entry to the LA systray menu, like it is possible in QM?<br />
Or do i have to use an own icon?]]></description>
			<content:encoded><![CDATA[Is it possible to add an own entry to the LA systray menu, like it is possible in QM?<br />
Or do i have to use an own icon?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[How to terminate ActionTriggers right way]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7936</link>
			<pubDate>Fri, 06 Mar 2026 10:22:46 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1554">AutoStarter</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7936</guid>
			<description><![CDATA[Hallo,<br />
I'm plan to use LibreAutomate-Nuget-Package inside a windows service to respond on third party windows etc. with configured ActionTriggers.<br />
After creating the trigger functions, I'll call ActionTriggers.RunThread() infinitly. If the service itself should be terminating I currently see no option to inject a CancellationToken as it would be normally. Additionally the host machine use hybernating states and wakeup or resume later but normally never will be shutdown fully - so killing threads or creating zombies is not really a good option (also I look to prevent memory leaks).<br />
<br />
I would therefore suggest to extend the library with following member function:<br />
async Task ActionTrigger.ExecuteAsync(CancellationToken stoppingToken)<br />
<br />
If there is already a way to safely cancel ActionTrigger Tasks by sending messages to thread or other solutions, I would love to know more about it.<br />
<br />
Thanks in advance for any advice.]]></description>
			<content:encoded><![CDATA[Hallo,<br />
I'm plan to use LibreAutomate-Nuget-Package inside a windows service to respond on third party windows etc. with configured ActionTriggers.<br />
After creating the trigger functions, I'll call ActionTriggers.RunThread() infinitly. If the service itself should be terminating I currently see no option to inject a CancellationToken as it would be normally. Additionally the host machine use hybernating states and wakeup or resume later but normally never will be shutdown fully - so killing threads or creating zombies is not really a good option (also I look to prevent memory leaks).<br />
<br />
I would therefore suggest to extend the library with following member function:<br />
async Task ActionTrigger.ExecuteAsync(CancellationToken stoppingToken)<br />
<br />
If there is already a way to safely cancel ActionTrigger Tasks by sending messages to thread or other solutions, I would love to know more about it.<br />
<br />
Thanks in advance for any advice.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Intercept messages from USB auxiliary device]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7932</link>
			<pubDate>Wed, 25 Feb 2026 14:14:16 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1376">cuitino</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7932</guid>
			<description><![CDATA[Hello,<br />
I am attempting to intercept and re-configure buttons on a USB device.<br />
My understanding is that I need to use WM_INPUT to intercept messages.<br />
From reading online, the device first needs to be registered: <a href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registerrawinputdevices" target="_blank" rel="noopener" class="mycode_url">https://learn.microsoft.com/en-us/window...putdevices</a><br />
Then get get handle of device.<br />
Can you please help guide me in the right direction, to first capture the button and then re-assign it my own code?<br />
Thank so much in advance]]></description>
			<content:encoded><![CDATA[Hello,<br />
I am attempting to intercept and re-configure buttons on a USB device.<br />
My understanding is that I need to use WM_INPUT to intercept messages.<br />
From reading online, the device first needs to be registered: <a href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registerrawinputdevices" target="_blank" rel="noopener" class="mycode_url">https://learn.microsoft.com/en-us/window...putdevices</a><br />
Then get get handle of device.<br />
Can you please help guide me in the right direction, to first capture the button and then re-assign it my own code?<br />
Thank so much in advance]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Find Image of slightly differently scaled graphics]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7931</link>
			<pubDate>Wed, 18 Feb 2026 16:34:49 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1376">cuitino</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7931</guid>
			<description><![CDATA[Hello,<br />
I am attempting to use Find Image to locate different symbols on the screen. Some of these symbols are just slightly different than each other (scaled slightly differently) but I would like LA to treat them as the same symbol. I am been unsuccessful so far in trying to have LA locate the symbols as the same. Below is a link with 2 sets of symbols to illustrate what I am referring to. The two top and the two bottom symbols should be the same.<br />
Thanks in advance<br />
<br />
<a href="https://www.photo-pick.com/online/BcxO8uJ7.link" target="_blank" rel="noopener" class="mycode_url">https://www.photo-pick.com/online/BcxO8uJ7.link</a>]]></description>
			<content:encoded><![CDATA[Hello,<br />
I am attempting to use Find Image to locate different symbols on the screen. Some of these symbols are just slightly different than each other (scaled slightly differently) but I would like LA to treat them as the same symbol. I am been unsuccessful so far in trying to have LA locate the symbols as the same. Below is a link with 2 sets of symbols to illustrate what I am referring to. The two top and the two bottom symbols should be the same.<br />
Thanks in advance<br />
<br />
<a href="https://www.photo-pick.com/online/BcxO8uJ7.link" target="_blank" rel="noopener" class="mycode_url">https://www.photo-pick.com/online/BcxO8uJ7.link</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[split] Remove tray icon in LinqPad]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7927</link>
			<pubDate>Mon, 26 Jan 2026 07:26:30 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1516">Davider</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7927</guid>
			<description><![CDATA[The following code can run successfully in LINQPad 8, but after it finishes executing, the icon still remains in the system tray (bottom-right of the taskbar). I have to manually exit/close the icon before I can run it again.<br />
 <br />
Is this normal behavior?<br />
 <br />
I need the icon to no longer be displayed after the script finishes executing.<br />
<br />
 <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//.<br />
script.setup(trayIcon: true, sleepExit: true);<br />
//..<br />
<br />
keys.send("Win+M");<br />
<br />
for (int i = 0; i &lt; 3; i++)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;using (opt.scope.all())<br />
&nbsp;&nbsp;&nbsp;&nbsp;{ //recorded<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opt.mouse.MoveSpeed = opt.key.KeySpeed = opt.key.TextSpeed = 20;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var w1 = wnd.find(0, "Program Manager", "Progman");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mouse.doubleClick(w1, 50, 20);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mouse.click(w1, 50, 20); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var w2 = wnd.find(10, "此电脑", "CabinetWClass");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mouse.click(w2, 68, 164); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w2.WaitForName(30, "文档");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mouse.doubleClick(w2, 235, 225); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w2.WaitForName(30, "leidian9");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mouse.click(w2, 1088, 19); <br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
keys.send("Win+Shift+M");</code></div></div>]]></description>
			<content:encoded><![CDATA[The following code can run successfully in LINQPad 8, but after it finishes executing, the icon still remains in the system tray (bottom-right of the taskbar). I have to manually exit/close the icon before I can run it again.<br />
 <br />
Is this normal behavior?<br />
 <br />
I need the icon to no longer be displayed after the script finishes executing.<br />
<br />
 <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//.<br />
script.setup(trayIcon: true, sleepExit: true);<br />
//..<br />
<br />
keys.send("Win+M");<br />
<br />
for (int i = 0; i &lt; 3; i++)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;using (opt.scope.all())<br />
&nbsp;&nbsp;&nbsp;&nbsp;{ //recorded<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opt.mouse.MoveSpeed = opt.key.KeySpeed = opt.key.TextSpeed = 20;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var w1 = wnd.find(0, "Program Manager", "Progman");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mouse.doubleClick(w1, 50, 20);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mouse.click(w1, 50, 20); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var w2 = wnd.find(10, "此电脑", "CabinetWClass");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mouse.click(w2, 68, 164); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w2.WaitForName(30, "文档");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mouse.doubleClick(w2, 235, 225); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w2.WaitForName(30, "leidian9");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mouse.click(w2, 1088, 19); <br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
keys.send("Win+Shift+M");</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Context Menu Trigger]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7925</link>
			<pubDate>Sat, 17 Jan 2026 12:39:12 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1516">Davider</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7925</guid>
			<description><![CDATA[I want to implement a context menu trigger that appears in File Explorer. Specifically: when I select <span style="font-weight: bold;" class="mycode_b">two folders</span> and right-click, a specific menu item should be displayed. Clicking this menu item will pass the paths of the two folders as parameters to a specified <span style="font-weight: bold;" class="mycode_b">LA script file</span>.<br />
(Note: this menu item should <span style="font-weight: bold;" class="mycode_b">not</span> be shown when only one folder is selected.)<br />
Is there a simple and reliable way to achieve this?<br />
Thanks in advance for any suggestions and help.]]></description>
			<content:encoded><![CDATA[I want to implement a context menu trigger that appears in File Explorer. Specifically: when I select <span style="font-weight: bold;" class="mycode_b">two folders</span> and right-click, a specific menu item should be displayed. Clicking this menu item will pass the paths of the two folders as parameters to a specified <span style="font-weight: bold;" class="mycode_b">LA script file</span>.<br />
(Note: this menu item should <span style="font-weight: bold;" class="mycode_b">not</span> be shown when only one folder is selected.)<br />
Is there a simple and reliable way to achieve this?<br />
Thanks in advance for any suggestions and help.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Tennis Court Booker]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7899</link>
			<pubDate>Tue, 25 Nov 2025 16:04:21 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1537">birdywen</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7899</guid>
			<description><![CDATA[Hi, how are you Gintaras! <a href="https://www.racquetdesk.net/login.html" target="_blank" rel="noopener" class="mycode_url">RacquetDesk Login</a>  and was hoping you could help. I am sending you pm with username and password<span style="font-weight: bold;" class="mycode_b">The Challenge:</span><ul class="mycode_list"><li>Court reservations are limited to one spot per person per day<br />
</li>
<li>All spots are released at exactly 9 AM, one week in advance<br />
</li>
<li>Due to high demand, it's extremely difficult to secure a booking<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">My Thought Process:</span> I was considering opening multiple browser windows simultaneously before 9 AM, pre-selecting different court times to make the 'book' buttons visible, then clicking them all right at 9 AM to maximize my chances of getting at least one reservation.<br />
<span style="font-weight: bold;" class="mycode_b">Technical Question:</span> I thought about using Playwright to help with this process since manual coordination across multiple windows is tricky, but I'm not very experienced with it. Would you be able to provide some guidance on how this might work?<br />
<span style="font-weight: bold;" class="mycode_b">What I'm Looking For:</span> Any advice on improving my booking success rate for these highly competitive time slots would be greatly appreciated.<br />
Thanks so much for your time!<br />
<br />
ps: the webpage should be keeping with logged in status<br />
<br />
1.the main view <img src="https://i.imgur.com/UO98Pfj.jpeg" loading="lazy"  alt="[Image: UO98Pfj.jpeg]" class="mycode_img" /><br />
<br />
2. the booking button when cell is clicked<br />
<img src="https://i.imgur.com/y4WHdtX.jpeg" loading="lazy"  alt="[Image: y4WHdtX.jpeg]" class="mycode_img" /><br />
<br />
3. when the spot is available <br />
<img src="https://i.imgur.com/aFojROJ.jpeg" loading="lazy"  alt="[Image: aFojROJ.jpeg]" class="mycode_img" />]]></description>
			<content:encoded><![CDATA[Hi, how are you Gintaras! <a href="https://www.racquetdesk.net/login.html" target="_blank" rel="noopener" class="mycode_url">RacquetDesk Login</a>  and was hoping you could help. I am sending you pm with username and password<span style="font-weight: bold;" class="mycode_b">The Challenge:</span><ul class="mycode_list"><li>Court reservations are limited to one spot per person per day<br />
</li>
<li>All spots are released at exactly 9 AM, one week in advance<br />
</li>
<li>Due to high demand, it's extremely difficult to secure a booking<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">My Thought Process:</span> I was considering opening multiple browser windows simultaneously before 9 AM, pre-selecting different court times to make the 'book' buttons visible, then clicking them all right at 9 AM to maximize my chances of getting at least one reservation.<br />
<span style="font-weight: bold;" class="mycode_b">Technical Question:</span> I thought about using Playwright to help with this process since manual coordination across multiple windows is tricky, but I'm not very experienced with it. Would you be able to provide some guidance on how this might work?<br />
<span style="font-weight: bold;" class="mycode_b">What I'm Looking For:</span> Any advice on improving my booking success rate for these highly competitive time slots would be greatly appreciated.<br />
Thanks so much for your time!<br />
<br />
ps: the webpage should be keeping with logged in status<br />
<br />
1.the main view <img src="https://i.imgur.com/UO98Pfj.jpeg" loading="lazy"  alt="[Image: UO98Pfj.jpeg]" class="mycode_img" /><br />
<br />
2. the booking button when cell is clicked<br />
<img src="https://i.imgur.com/y4WHdtX.jpeg" loading="lazy"  alt="[Image: y4WHdtX.jpeg]" class="mycode_img" /><br />
<br />
3. when the spot is available <br />
<img src="https://i.imgur.com/aFojROJ.jpeg" loading="lazy"  alt="[Image: aFojROJ.jpeg]" class="mycode_img" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Randomly move the mouse along a curve before clicking on a control element]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7898</link>
			<pubDate>Mon, 03 Nov 2025 04:41:44 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1516">Davider</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7898</guid>
			<description><![CDATA[I want to implement a feature:<br />
for example, I need to input three different pieces of text into Notepad in three separate steps. Before each input, the mouse pointer must click on a specific position within the Notepad window.  <br />
<br />
Note: The pointer's movement trajectory must be <span style="font-weight: bold;" class="mycode_b">unique each time</span>, <span style="font-weight: bold;" class="mycode_b">not a straight line</span>, but a <span style="font-weight: bold;" class="mycode_b">curved motion</span>.<br />
<br />
Is this possible? Thank you in advance for any suggestions and help.]]></description>
			<content:encoded><![CDATA[I want to implement a feature:<br />
for example, I need to input three different pieces of text into Notepad in three separate steps. Before each input, the mouse pointer must click on a specific position within the Notepad window.  <br />
<br />
Note: The pointer's movement trajectory must be <span style="font-weight: bold;" class="mycode_b">unique each time</span>, <span style="font-weight: bold;" class="mycode_b">not a straight line</span>, but a <span style="font-weight: bold;" class="mycode_b">curved motion</span>.<br />
<br />
Is this possible? Thank you in advance for any suggestions and help.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Having problems with quickly closing a macro]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7882</link>
			<pubDate>Fri, 17 Oct 2025 05:30:19 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1600">AshesOfHegemony</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7882</guid>
			<description><![CDATA[Im trying to learn LibreAutomate. I created small macro to spam spacebar every 20 milliseconds. I set it to toggle on hotkey press (Shift + Numpad+). It works and runs as intended, but if i run it for longer than a few seconds it takes multiple attempts to toggle it off. I'm not sure what im doing wrong here or if this is a limitation of the LibreAutomate itself?<br />
 <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/*/ ifRunning end; /*/<br />
script.setup(trayIcon: true, sleepExit: true, exitKey: KKey.MediaStop, pauseKey: KKey.MediaPlayPause);<br />
<br />
sound.speak("Toggle On");<br />
bool toggle = false;<br />
while (!toggle)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;keys.send("Space");<br />
}</code></div></div>The hotkey is assigned in the "hotkey triggers" file<br />
 <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>using Au.Triggers;<br />
<br />
partial class Program {<br />
&nbsp;&nbsp;&nbsp;&nbsp;[Triggers]<br />
&nbsp;&nbsp;&nbsp;&nbsp;void HotkeyTriggers() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var hk = Triggers.Hotkey;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Add hotkey triggers here.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//To add triggers can be used triggerSnippet or menu TT &gt; New trigger.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//To add trigger scopes (window, program) can be used Ctrl+Shift+Q.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Click the Run button to apply changes after editing.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//More info in Cookbook.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hk["Ctrl+Shift+T"] = o =&gt; Triggers.ShowTriggersListWindow();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hk["Shift+Add"] = o =&gt; script.run(@"Game Spacebar.cs");<br />
<br />
..........</code></div></div>Any help would be appreciated.]]></description>
			<content:encoded><![CDATA[Im trying to learn LibreAutomate. I created small macro to spam spacebar every 20 milliseconds. I set it to toggle on hotkey press (Shift + Numpad+). It works and runs as intended, but if i run it for longer than a few seconds it takes multiple attempts to toggle it off. I'm not sure what im doing wrong here or if this is a limitation of the LibreAutomate itself?<br />
 <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/*/ ifRunning end; /*/<br />
script.setup(trayIcon: true, sleepExit: true, exitKey: KKey.MediaStop, pauseKey: KKey.MediaPlayPause);<br />
<br />
sound.speak("Toggle On");<br />
bool toggle = false;<br />
while (!toggle)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;keys.send("Space");<br />
}</code></div></div>The hotkey is assigned in the "hotkey triggers" file<br />
 <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>using Au.Triggers;<br />
<br />
partial class Program {<br />
&nbsp;&nbsp;&nbsp;&nbsp;[Triggers]<br />
&nbsp;&nbsp;&nbsp;&nbsp;void HotkeyTriggers() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var hk = Triggers.Hotkey;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Add hotkey triggers here.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//To add triggers can be used triggerSnippet or menu TT &gt; New trigger.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//To add trigger scopes (window, program) can be used Ctrl+Shift+Q.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Click the Run button to apply changes after editing.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//More info in Cookbook.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hk["Ctrl+Shift+T"] = o =&gt; Triggers.ShowTriggersListWindow();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hk["Shift+Add"] = o =&gt; script.run(@"Game Spacebar.cs");<br />
<br />
..........</code></div></div>Any help would be appreciated.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Input recorder]]></title>
			<link>https://www.libreautomate.com/forum/showthread.php?tid=7876</link>
			<pubDate>Fri, 26 Sep 2025 22:59:43 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.libreautomate.com/forum/member.php?action=profile&uid=1595">RONON</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.libreautomate.com/forum/showthread.php?tid=7876</guid>
			<description><![CDATA[How do I get the input recorder to record pauses and mouse clicks? It currently isnt  doing  that.]]></description>
			<content:encoded><![CDATA[How do I get the input recorder to record pauses and mouse clicks? It currently isnt  doing  that.]]></content:encoded>
		</item>
	</channel>
</rss>