c ++ - Window inaktivitetsalarm

Indlæg af Hanne Mølgaard Plasc

Problem



Så jeg har en ny projektide ..
Min kæreste spiller denne MMORPG, og hun forlader ofte sin karakter til at lave noget (fx fiskeri) i baggrunden, men hvis hun ikke klikker i vinduet i 5 minutter logger det hende automatisk.
Så min idé er at lave en slags 'alarm', hvor hvis vinduet spillet er i, er inaktivt i ca. 4 minutter, springer det op en beskedboks, der fortæller hende at klikke i den.


Kan nogen af ​​jer give mig et sted at starte på dette?

Bedste reference


Jeg antager, at denne popup er et WinAPI-vindue. Jeg tror at de fleste moderne spil bruger deres egne GUI'er, hvilket ville gøre under ideen ubrugelig.


Jeg ville starte med Spy ++ (fra Visual Studio), når dette popup-vindue vises, skal du bruge Spy ++ til at finde sit vindue. Bemærk navn og klassenavn. Med disse to kan du bruge FindWindow til at kontrollere, om det pop op. Du laver bare en loop og kontrollerer med jævne mellemrum, om FindWindow (szPopupWndName, szPopupClassName) returnerer ikke-null-værdi. Hvis det ikke er null, skal du oplyse, at vindueknappen i MMORG skal klikkes.

Andre referencer 1


Sandsynligvis noget der ligner:


//when the window loses focus, start a timer.
//when timer reaches 4 min...
//get all windows,
//sort them,
//find the one you need
//give it focus for 0.1s then go back to whatever you were doing


Jeg ved ikke præcis, hvordan du kan gøre det, men jeg brød det op i mindre fag, så du kan se nærmere på dem, mere præcist:



  • opdage en Windows-tilstand (måske via en injiceret DLL? Jeg ved det ikke)

  • timer (meget let i .NET)

  • giver Windows fokus som et program.