Personal Project - What Language
I am trying to learn things and I like doing projects to learn instead of following a course each time.
But let’s get to the point. I want to make a app / GUI which has a collection of macro’s that being for games (where it’s allowed) or day to day use. I would prefer something not too heavy on resources, and something precise in timings etc. And if possible (I like modern / Fluent design) something which has that capability.
I’ve read into XAML and C# but where do I start? WPF, WinUi3, Avalonia, the Uno?
I’ll tag it with noob cause I’m still rather new I guess.
6 Replies
Pyautogui will allow you to automate things as you describe. I havent gone deep enough into Python to give advice on a GUI tho. If youre thinking about a specific other language, then googling "pyautogui but in xxxx" will also send you into the right direction.
Web technologies (HTML + CSS) have the best tooling and the biggest ecosystem when it comes to building UI. You can use Tauri with Rust or Wails with Go. They are both relatively fast and lightweight. Also, as a nice bonus your app will be cross-platform
If youre new then Go will be easier on you. Theres starter kits available here https://wails.io/docs/community/templates/. I think many in this Discord would be able to help you on the UI side, but Im not sure how many people could help with Wails. RobotGo (https://pkg.go.dev/github.com/go-vgo/robotgo) would be the package youd find for "pyautogui but in golang".
Templates | Wails
This page serves as a list for community supported templates. Please submit a PR (click Edit this page at the bottom)
I personally don’t really mind a learning curve. I see it more as a challenge
Also do you by any chance know the sleep delta of go and or python
AHK's sleep for example has a delta of 31.2ms iirc and so you need DllCalls for precise sleeps
This area isnt my strong suit, but as far I understand it; those timings will depend on your how your operating system handles interrupts and how it distributes CPU time. If you like a challenge and the timing is really important to you then you could google "RTOS" and head down a massive rabbit hole
Pick a more low level compiled language (like go or rust) and you shouldn't have any problems with precise timings
Just checked, rust uses native os apis for sleeping, and it might not be very accurate, but you can use
spin_sleep
library for accurate sleep to the nanosecond
the minumum timout in Nodejs is 4ms, and I suspect python's sleep is something similar