Frage

Gibt es eine Möglichkeit zu erkennen - durch die Direct3D-API - Direct3D-Anwendungen im Vollbildmodus ausgeführt

SHQueryUserNotificationState , der < a href = "http://msdn.microsoft.com/en-us/library/bb762533%28VS.85%29.aspx" rel = "nofollow noreferrer"> solche Anwendungen anzeigen, wird nur auf Vista unterstützt und höher. Es ist auch nur funktioniert, wenn der Explorer-Shell ausgeführt wird.

War es hilfreich?

Lösung

Ich fand, wie Vollbild-Direct3D und OpenGL zu erkennen (zB Minecraft) Anwendungen.

Rufen Sie IDirectDraw7 :: TestCooperativeLevel () . Diese Funktion gibt DDERR_EXCLUSIVEMODEALREADYSET wenn aktiven Vollbild-Direct3D-Anwendung ausgeführt wird oder wenn Benutzersitzung nicht aktiv ist (Win + L, Alt + Strg + Entf, Fast User Switching, usw.).

Hinweis: Rufen Sie DirectDrawCreateEx mit DDCREATE_EMULATIONONLY. Dies reduziert Ressourcen-Nutzung durch IDirectDraw7.

ich diese Methode getestet habe nur in Windows 7 SP1 x64 mit 1 Display.


BTW SHQueryUserNotificationState() Renditen für Vollbild-Spiele statt QUNS_BUSY QUNS_RUNNING_D3D_FULL_SCREEN. Seltsam ...

Andere Tipps

Versuchen 'IDirect3DDevice9 :: GetDisplayMode':

http://msdn.microsoft.com /en-us/library/bb174387%28VS.85%29.aspx

HRESULT GetDisplayMode(
  UINT  iSwapChain,
  D3DDISPLAYMODE * pMode
);
  

Parameter:

     

iSwapChain [in]

An unsigned integer specifying the swap chain. 
  

PMODE [out]

Pointer to a D3DDISPLAYMODE structure containing data about the
  

Anzeigemodus des Adapters. Wie   in den Anzeigemodus der gegenüberliegenden   Vorrichtung, die, wenn die nicht aktiv sein kann,   Gerät nicht Vollbild-Modus besitzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top