Wrote a program to help with alt+tabbing.

Discussion in 'The Veterans' Lounge' started by Pelrond, Jan 29, 2023.

  1. Pelrond Elder

    If this is not the best place for this, let me know where would be better. If this kind of post is not allowed, please delete it and apologies.

    So I am wondering if people would be interested in this program and I would like to verify with daybreak (as much as possible, I know there would be nothing official) that this program is not any kind of violation of the rules. I don't believe it is as it does not touch or modify EQ. It just uses windows built-in functionality to activate windows and drop numbers (and - and =) into the keyboard buffer.

    Instead of alt-tabbing (I get lost easily when I do that), I wrote a program that puts a row of buttons (0-9, - and =) on the screen for each eq I have running. So if I have 4 toons running, I have 4 rows of buttons. The buttons are always on top. I can label the buttons with the toons name and when I press a button, it brings that window to the top and pushes the matching button in that window.

    Anyway, the program is just a regular windows program. It just uses windows built-ins to bring a window to the front and then pushes a button. Really it just replaces alt+tab. If you have no problems with alt+tab or you use some other software, this won't really do anything for you.

    This does NOT broadcast keystrokes to multiple windows. It does NOT look at memory or touch anything internal. You have to be present and physically press a button to make anything happen. Nothing is automated. It is just a tweaked alt+tab that uses the mouse instead of the keyboard.

    I could do a video of it in action if people want to see how it works.

    So, would anyone be interested in a program like this and does anyone see where this might violate the rules?

    BTW, this would be a free tool. I'm just looking to share it, not sell it.

    Thanks.
    Duder, Tweakfour17, Marton and 4 others like this.
  2. Ozon Augur

    This sounds very handy for anyone boxing. Hopefully it will be deemed appropriate, I'd love to see it in action if possible.

    Honestly, sounds good enough I wouldn't mimd seeing it integrated into the UI revamp. But that's not going to happen.
    Pelrond likes this.
  3. Fanra https://everquest.fanra.info

    I cannot say what is and is not allowed, since I do not work for Daybreak. However, you say:
    Now, I'm assuming that you are running EQ in Full Screen mode and you have somehow managed to add an overlay on top of EQ that you can click. Since it is not actually in EQ (I'm assuming) but an overlay, I think it might be ok.

    However, have you considered that you may be able to create in-game buttons using:
    SoroxDrinal likes this.
  4. Pelrond Elder

    Hi. So my buttons bring an EQ window to the top and then press the matching button in EQ (doesn't actually press anything, just pushes the number into the keyboard buffer).

    Like say you alt+tab to a toon (let's call it toona) and then press 1. That's the alt+tab way.

    With my program, there would be a toona row of buttons, a toonb row of buttons, etc. You would press the "toona button 1".

    Kind of hard to explain without pictures and it looks like only links can be shown here. I think I will make a video.

    Thanks,
  5. Pelrond Elder


    I'd be willing to give daybreak the code if they want it but it's written in python. I am guessing EQ is mostly C++.
  6. Ankarv Harbinger of Nightmares

    Sounds like a windows mod that has nothing to do with EQ, I would think you would be ok using it.

    Darkpaw/Daybreak will never review and tell you if your software is acceptable. People have tried to get an ok for parsers and Gina and they respond that they wont say if your program is acceptable. They further state if they were to give an ok they would have to review everytime the program was update and dont want to do that. https://forums.daybreakgames.com/eq/index.php?threads/what-constitutes-as-cheating.281242/
    Pelrond likes this.
  7. Svann2 The Magnificent

  8. Pelrond Elder

    Thanks. Yeah, I think it is ok. I'm going to go ahead and let people use it. It sounds like there is interest.
    Flatchy likes this.
  9. Bernel Augur

    Is there a way to switch windows without having a key sent into the new window? Sometimes I just want to bring another window to the foreground so I can start interacting with it myself. I wouldn't always want a key to be sent to the new window.
    Pelrond likes this.
  10. Spacemonkey555 Augur

    Even if there isn’t, you can just have the key sent do nothing rather than being tied to a combat function.

    OP, DPG will never approve your program, it may be reasonable now but someone could add automation or other cheat features after they approve it. Your program doesn’t sound like it crosses any lines. People post videos of IS boxer all the time and it does far more.
    Pelrond likes this.
  11. Alnitak Augur

    And that's where all the demons are gonna ambush you.
    EQ is not relying on Windows messaging mechanism, nor it is looking for various keyboard events. It gets keypress statuses from a relatively low-level DirectX hardware interface. And DX engine is in somewhat "protected" mode and does not allow to just "insert" a simulated keypress from external processes.
    All those macaroni or box-related applications are actually very intrusive - they launch EQ as a child process and while being a parent process with abusive rights they dictate to DX engine to accept their keypress injections. Very brutal, unsafe, abusive code practice. But it works.
    If you can implement such methods while not breaking EULA then perhaps you can simulate a button press.
    Good luck to you!
  12. Pelrond Elder


    Yes. The first button is just a "go to that window" button and does nothing else. Actually, my little program started out being just that button for each toon I was running. A straight alt+tab replacement. Then I added the row of other buttons.
  13. Pelrond Elder


    I just pop a character on the keyboard buffer (just like your keyboard does). What windows does with it is up to windows. In the case of EQ, it just treats it like any other press of a key on a keyboard and passes that thru to the active window (in this case EQ).

    I'm not sure why those other programs load eq as child processes but I would think doing that would make things a lot more complicated. I know some of those programs are doing funky things with memory so maybe that why they need the EQ executable to be a child process. I don't do anything like that. My program is totally independent/standalone.
  14. Bernel Augur

    The difference is that the more intrusive way allows those programs to send keystrokes to background processes. Sending keystrokes to the foreground window is relatively straightforward. If your program tried to send keystrokes to background processes (e.g. put a keystroke on the keyboard buffer of the background process), that wouldn't work. But since you are bringing the window to the foreground, adding the keystroke to the Window's keyboard buffer means the keystroke goes to that foreground window. Those other programs facilitate boxing by acting as a control panel that sends keystrokes to the background processes. Those other windows don't come to the foreground.
  15. Pelrond Elder

    I know daybreak won't approve my program. I am just hoping that if I am definitely (or even really likely) to be breaking some rule or rules, they will tell me that. I know I won't get an "ok this is fine", just hoping that if it is bad, I will hear that.

    I guess, if I don't hear anything, I will assume it is not bad on the face of it.

    I think it is fine based on reading the rules and TOS. But I am not a lawyer. I just want to share a tool that I think is helpful with the community.
  16. Vumad Cape Wearer

    To translate...

    Alt+Tab cycles open programs.

    Win+# jumps to a specific window.
    (So if EQ is opened 1st, then a browser, Win+1 would jump to EQ and Win+2 would jump to the browser, no matter how many windows you have open. Apply this concept to multiple instances of EQ.)

    So this program would make an on screen button overlay that would simply use Win+# with customized labels. Maybe it's more complicated than that or achieved in a different way, but that is what it sounds like functionally.

    Since I know people do use Win+#, then I can say with a fair bit of confidence that people could use this. I know at least one person uses a logitech keyboard and has G1 = Win+1, G2 = Win+2, etc.

    Edit: which means this isn't an EQ specific overlay. You could setup clicks for Box1, Box2, Box3, Browser, GamParse, Teamspeak, The work skype you are pretending to be present for, whatever, and could be used if you wanted without EQ at all.
    Pelrond likes this.
  17. Pelrond Elder


    I hadn't thought of that, but yeah. Logitech has keyboards that do more than what this does. The benefit to this is that it is so simple to use and doesn't require a new keyboard.
  18. Ankarv Harbinger of Nightmares

    They wont even give you this, they avoid the whole what is cheating like the plague
  19. Zunnoab Augur

    Once upon a time they gave clear answers Window management and broadcasting were okay, but could be used in ways to break the rules, without endorsing certain software. Even back then they seldom directly endorsed certain software.

    Hypothetically if this was endorsed the functionally could change at any time. I understand thier policy of not specifying certain software.

    Then there was the ridiculous showy circus last year, or was it the year before? Either way the only guidance you can expect now is an entirely unhelpful "any third party program can get you in trouble." I have seen at least one topic closed when someone asked about a text parser, but it's possible the author was spamming topics and I was unaware of the history.

    Basically you're duplicating functionality of software they already detect and block on true box servers, if I understand it correctly. Which means if they wanted, they could do so on live servers too. I know someone who got reprimanded for running in a virtual machine. I don't know what they detect, but they aren't blind.
  20. Pelrond Elder

    I created a video demo and it is on youtube. Take a look and let me know if you have any questions. If you are interested in it, you can let me know in a DM here and I will post a link to it in the description of the youtube video once I have it somewhere.
    I hope to have it ready for testers by the weekend.

    I did find a bug while doing the demo (of course) but it is pretty minor.

    Sprooce and Tweakfour17 like this.