2016-11-05 2 views
0

Was wäre die sauberste Methode zum Bestimmen, ob das aktive Vordergrundfenster direct3d verwendet.Überprüfen, ob das aktive Fenster direct3d verwendet

Ich weiß, ich kann überprüfen, ob es d3d Module geladen hat, aber das allein bestätigt nicht ohne einen Schatten eines Zweifels, dass es mit direct3d Rendern ist.

Ich könnte den Speicher durchsuchen, um zu sehen, ob Instanzen der Klassen initialisiert wurden, aber das dauert zu viel CPU und Zeit.

Die Lösung muss sehr schnell und sehr ressourcenschonend sein, damit sie einmal pro Sekunde verwendet werden kann, um festzustellen, ob meine eigene Anwendung geschlossen werden muss, um Ressourcen freizugeben.

+0

Meiner Meinung nach wäre der einzige garantierte Weg, einen systemweiten Hook zu installieren und Ihren Code in den Hooks IDirect3dDevice9 Present zu injizieren. – VuVirt

+0

Das sollte bei den Spielen Direct3D 10, Direct3D 11 und Direct3D 12 vollständig fehlschlagen. Einhaken ist immer brüchig. –

+0

Sie können OpenGL, Vulkan, etc zur Liste hinzufügen ... – galop1n

Antwort

0

Einstecken in Spiele (injizierende DLLs) kann sehr schlimme Folgen für Gamer & Hellip haben; wie in können sie verboten werden. Anti-Cheating-Programme suchen nach solchen unbekannten DLLs.

Was Sie tun müssen, ist zu erkennen, wenn Ihr Fenster minimiert ist und Ressourcen freigeben oder zumindest Rendering pausieren. Wenn es wieder hoch geht, weitermachen wie gewohnt.

Oder bringen Sie Ihren Benutzern nur bei, wie sie es tun, während des Spiels die App zu schließen. Ein intelligenter Gamer spielt Spiele mit allem, was kein Spiel erfordert, geschlossen.

+0

Ich bin mir bewusst, dass das Injizieren von dlls falsche Positive mit Anti-Cheats auslösen kann. Meine Anwendung läuft den ganzen Tag. Minimierung bedeutet nicht, dass der Benutzer es nicht benutzt. Ich gebe meinen Benutzern keine Probleme, indem ich sie manuell schließe und die Anwendung neu starte, wenn sie in Spielen hin- und herspringen. – John

+1

Sie haben Ihr Problem oben nicht erwähnt, nur eine vorgeschlagene Lösung. Egal, ob jemand ein Spiel spielt oder nicht, sollte Ihre Anwendung zu wenig bis keine Ressourcen verwenden, wenn sie minimiert wird. –

+0

Das Problem ist impliziert. Es ist keine Anwendung, die minimiert werden kann. – John

Verwandte Themen