Xojo extended features

I upgrade my Xojo software from time to time but am always disappointed to find that things I want to do are still not part of the main program (although they may well be available via the massive monkeybreadsoftware add-ons). Here are some of the very small number of things I want to be able to do within Xojo rather than by using add-ons or macros. Can I do them in Xojo yet, and if not, why not? I want my Xojo apps to be able to:

Click on any point on the screen, whether it’s in a Xojo window or another app’s window and have the owning application react appropriately (for example if it’s a button or a field requiring text input)

Generate a keystroke (eg a carriage return) in any window on the screen, whether it’s a Xojo window or not.

React if I click on a point anywhere on the screen so that the location is saved as a variable enabling the app to click on it later in the program.

I don’t understand why I have to resort to macros and third party programs to achieve what seem to me to be very simple results.

Huge security risk. Additionally, on Mac your app must specifically be granted permissions by the user to do stuff like this (if you’re able to get a plugin to do it). The number of people who might need something like this doesn’t seem like a lot, so if I were Xojo and I had this deadline about 64 bit Mac apps coming up, I’d focus on fixing all the 64 bit Mac issues first.

Again with the security risk, and low number of people who need it.

Again with the security risk.

It seems like your requests are all very specific and niche, which is why they’re likely low priority. Have you filed any feedback requests for these? What are their case numbers?

ARE you trying to write some malware???


I’m with the others and can’t see a valid reason for you to need such functionality in a Xojo app. Can you define your use case as that might sway us (and possibly Xojo)?

I Agree with everyone else and these functionalities should never be part of Xojo

Why are you wanting such things? It sounds maleware to me as others have described

Guys, what Steve is asking for could simply be for task automation of Applications that don’t provide a scripting interface. If you recall, there have been several programs over the years that have allowed you to record your actions and then replay them later on both Mac and Windows.

To be clear, I wasn’t trying to imply anything about OP’s specific application of these technologies.

I was trying to illustrate that the security risks these features offer in addition to lack of general purpose need are possibly two main reasons that Xojo has not implemented these functions into the core features of the product.

I do not know the specifics of why they aren’t implemented, so reasons listed are my opinions.

maybe a UITest like xamarin.UITest, I’m thinking do some similar for xojo, just xojo not other apps.

That’s why I suggested clarification. :slight_smile:

I’m not trying to write malware. Why do people assume that? All I’m trying to do is to handle a series of repetitive tasks in a non-Xojo Windows window as part of a simple Xojo crossplatform program written on my Mac. All these tasks can be achieved using monkeybread software add-ons or macros so I can’t see why I can’t do them in Xojo itself and compile them for use on a PC instead of investing a lot of time effort and/or money on add-ons or learning a set of Windows macros. Why raise the ominous spectre of security risks when these tasks can already be achieved (but not using Xojo alone)? I can tell you exactly what I want to do:

1 Input an integer (say 15) as my_counter
2. Input another integer (say 270) as a waiting time (in seconds) my_wait
3. Click on a button location in a “foreign” window (the location to be remembered by the program.
4. Then I want the program to:
a. Pause for a second or so
b. Enter a carriage return in the “foreign” window
c. Pause for my_wait seconds
d. Reduce my_count by 1.
e. Check if my_count is zero and if so FINISH
f. Otherwise Click again on the button at the saved location and repeat all of 4 again, so that eventually it has counted down to zero and stopped.

With the above variable figures that would take nearly an hour to run that I could spend doing something else. It would save me several hours a month and I could write it in two minutes in Xojo with the three features I mentioned but I still can’t do it with my expensive software Ferrari sitting in the garage unused for most of the year, and it’s been there for well over 10 years now.

In reply to Tim Parnell, haven’t put in a feedback request. I think that would take at least a year to come through if it ever came through and at the moment I just want to sort this now so I guess I shall have to learn how to do it with Windows macros and leave the Ferrari to rust.

But thanks for all your comments and have a nice Sunday - Steve

We don‘t ASSUME you write malware, we say that this would be a security risk and something that malware would do.

If apps want to give you these abilities, then it is THEIR decision to do so. For example AppleScript is incorporated into macOS for exactly that purpose (the implicit assumption being that Apple can be trusted and you have to install and run the AppleScript). You on the other hand should NEVER be able to control third party apps from your own app without consent.

So if the apps you want to control have AppleScript support enabled then you are good to go. Even from within Xojo.

The one I was thinking of was QuicKeys, but it looks like the Windows version hasn’t been maintained. http://www.startly.com

Many things can be done with AppleScript. While I cannot talk about it, a WindowsScript exist (existed ?) too.

There are also 3rd party tools (Mercury comes to mind) that allow you to write scripts to control the entire computer .
We used these extensively during “Project 2000” to test apps for Y2K bugs…
I know we used it on our AIX computers, but I’m sure there is a Windows version, although it might be more expensive that you want.

There were a lot of these apps during less security-conscious times …

I was at JUCE conference yesterday (JUCE certainly no Xojo replacement but it has its merits), and I’m reminded that Xojo is just a wrapper, really. So although extra functions are always icing on the cake, Xojo’s mission should always to be as transparent, direct, clear, and fast pipeline to the core OS functions, whatever OS it’s compiling for. And besides, what if Xojo’s implementation of your icing-on-the-cake function isn’t exactly what you want. Xojo shouldn’t be programming for us, it should be like a car engine - provide a lot of power and stay under the hood.

If you don’t put in a feedback case it won’t ever happen!

Thanks for your further comments and Tim is quite right that this won’t happen if nobody asks for it, although there doesn’t sound to be much enthusiasm here for something that “might” be misused. After a few false starts I identified Autohotkey as the free tool for this Windows job and managed to learn enough of the language yesterday to code a complete compiled solution by lunchtime today in about 20 lines. Pity I couldn’t do it in Xojo.

Steve is referring to RPA, robotic process automation and RDA, robotic desktop automation. This is a fast growing niche which allows you to automate (business) processes that run over different platforms and which can’t be automated in short time and/or with a valid business case.

Have a look at:

These solutions all work with a kind of point-and-click IDE. They can spot the screen objects in a HTML page but also on Windows apps, allowing you to build a flow which gets executed. Because of the object detection, a moved object doesn’t break the robot.

Currently running a proof of concept.