@fredemmott said in PointCtrl in BMS:
@Deeling said in PointCtrl in BMS:
If he knows how to write any code that can move the mouse a specified number of pixels at the driver or kernel level, it should not be that difficult to implement the algorithm I described above without the need for an additional arduino like I needed. Happy to share how I did it.
For this specifically, I either use SendInput(), SendMessage(), or I can Detour (which is a horrifying concept š ) various calls the game makes - itās all normal user-space software.
I have no experience in driver/kernel-level Windows software, as thereās a ridiculous high entry fee - literally - in the form of requiring EV code signing certificates, which in turn requires doxing yourself and paying various additional recurring fees to your local government.
If user-space isnāt an option, arduinos are the right choice unless you have at least $500 (more like $3k probably) yearly to spend on it. As windows then considers the arduino a physical devices, this means you get the āmove a ridiculous amount left and up gets you to (0, 0)ā behavior.
Oh wow I had no idea it was so arduous to even get into writing such software. I always imagined that when you graduated from āamateurā to āprofessionalā software developer, kernels, DLLs and registry edits magically become part of your skillset lol. I have a very vague idea of what a kernel even is, and I watched a 10 minute explainer on DLLs a couple weeks ago. Iām still not sure what registry keys do.
Glad I took the Arduino route!
In that regard, although I now know from you and @foxter that some Python function calls can actually work in BMS, in hindsight it was a good thing that I used Arduino after all, since it allowed me to add a physical button to pause the injected mouse inputs. This is absolutely necessary for me since Iām using a āmove up and leftā loop to accomplish āmove to absolute coordinates [0, 0]ā, and so itās great that I have a reliable way to regain control of my mouse through a hardware interrupt button.