Intellibot and AutoHotkey

  • 89 Views
  • Last Post 4 weeks ago
  • Topic Is Solved
admin@repcat.cat posted this 20 August 2019

A work-in-progress AutoHotkey plugin, based on AutoHotkey.Interop. Lots of work to do yet, but I'm encouraged. ExecRaw() and LoadFile() work reliably, the other functions are not yet helpful to me though. I need to add ExecFunction(), which is perhaps the most useful in AutoHotkey.Interop, but that's a ways down the road. If you want to see an animated GIF, there's one at this AHK forum link.

Order By: Standard | Newest | Votes
admin@repcat.cat posted this 21 August 2019

Some more progress, updated plugin.

alphonsa@intellibot.io posted this 21 August 2019

Hi Winter,

Please ensure there aren’t any issues during debug process of Visual Studio. Once the issues are fixed, you should be able to make use of the plugin in Intellibot Studio.

Thanks & Regards,

Alphonsa Kalapala.

admin@repcat.cat posted this 4 weeks ago

Hi, this is not an issue I'm reporting, just something potentially useful. I've compiled a more complete plugin for AutoHotkey, and although I still need to address some IPC functionality (i.e. InitializePipesModule, which is either not completely functional yet or I am not providing a correct parameter to it in my experiments so far), the plugin is largely quite useful to me. If there is interest - I realize there may not be, as AutoHotkey is relatively unknown - I will prepare a NuGet package for it.

As an aside, I think it might be useful to have a place on the forum or elsewhere for users to share their plugins.

I'm concentrating here on the use of the AutoHotkey "SendMessage" command to control a Windows application by way of Windows messages. (A companion command, "PostMessage", does not wait for a return as "SendMessage" does.)

The workflow below opens Notepad, saves its Window ID (or "hwnd" as it's usually known in AutoHotkey) in a global variable "NotepadPtr" by overriding the Data Port and selecting the mapped variable. The AHK file "send1.ahk" is then loaded. Its contents are:

ChangeNotepadTitle(hwnd)


return

ChangeNotepadTitle(hwnd)
{
WinWait Untitled - Notepad
SendMessage, 0xC, 0, "Controlled by Intellibot", , ahk_id %hwnd%; 0XC is WM_SETTEXT
}

Then the function "ChangeNotepadTitle" is called, passing "NotepadPtr" to it (and the function does exactly what the function name suggests - here it changes it from the Notepad default to "Controlled by Intellibot"). Although "NotepadPtr" is an integer, AHK will treat it as a string, so the type difference does not matter. The function "Reset" is called - this is necessary because the file loaded will persist unless this is done, resulting (if "Reset" is NOT called) in a "duplicate function" error the next time the script is called. Reset will unload the file so it can be run more than once.

 

The new functions list for the plugin is as shown:

Regards,

Winter

  • Liked by
  • alphonsa@intellibot.io
alphonsa@intellibot.io posted this 4 weeks ago

Hi Winter,

 

Great work and really appreciate your effort in building this connector. We are sure it would be useful for many INTELLIBOT users.

 

Let us know if would like us to release this (AutoHotKey) connector formally, so that it would come default with the Studio.

 

We will provide you access to the connector's source code, so that you can continue to contribute for future enhancements. 

 

Please reach me on alphonsa@intellibot.io for further assistance.

 

Thanks & Regards,

Alphonsa.

admin@repcat.cat posted this 4 weeks ago

Alphonsa, I would be happy to have you use it if you like. Please just let me know what you need to prepare a package for formal release. I will contact you at the email you've provided for me.

Regards,

Winter

alphonsa@intellibot.io posted this 4 weeks ago

Hi Winter,

Our product team will get in touch with you soon to take this further.

 

Thanks,

Alphonsa

Close