Direct3D API を使用して、フルスクリーン モードで実行されている Direct3D アプリケーションを検出する方法はありますか?
このようなアプリケーションを示すことができるSHQueryUserNotificationStateは、 Vista 以降でのみサポートされます。また、Explorer シェルが実行されている場合にのみ機能します。
Direct3D API を使用して、フルスクリーン モードで実行されている Direct3D アプリケーションを検出する方法はありますか?
このようなアプリケーションを示すことができるSHQueryUserNotificationStateは、 Vista 以降でのみサポートされます。また、Explorer シェルが実行されている場合にのみ機能します。
フルスクリーンの Direct3D および OpenGL (Minecraft など) アプリケーションを検出する方法を見つけました。
IDirectDraw7::TestCooperativeLevel() を呼び出します。この関数はDDERR_EXCLUSIVEMODEALREADYSET
、アクティブなフルスクリーン Direct3D アプリケーションが実行されている場合、またはユーザー セッションがアクティブでない場合 (Win+L、Alt+Ctrl+Del、ユーザーの簡易切り替えなど) に戻ります。
注:DirectDrawCreateEx
で呼び出しDDCREATE_EMULATIONONLY
ます。これにより、IDirectDraw7 によるリソースの使用量が大幅に削減されます。
この方法は、1 ディスプレイの Windows 7 SP1 x64 でのみテストしました。
ところで、フルスクリーン ゲームの代わりにSHQueryUserNotificationState()
戻ります。変...QUNS_BUSY
QUNS_RUNNING_D3D_FULL_SCREEN
「IDirect3DDevice9::GetDisplayMode」を試してください:
http://msdn.microsoft.com/en-us/library/bb174387%28VS.85%29.aspx
HRESULT GetDisplayMode(
UINT iSwapChain,
D3DDISPLAYMODE * pMode
);
パラメーター:
iスワップチェーン[に]
An unsigned integer specifying the swap chain.
pMode[out]
Pointer to a D3DDISPLAYMODE structure containing data about the
アダプターの表示モード。デバイスが全画面表示モードを所有していない場合はアクティブにならない可能性がある、デバイスの表示モードとは対照的です。