首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测全屏Direct3D应用程序

检测全屏Direct3D应用程序
EN

Stack Overflow用户
提问于 2009-08-02 18:18:46
回答 2查看 2.5K关注 0票数 4

有没有办法通过Direct3D应用程序接口检测在全屏模式下运行的Direct3D应用程序?

可以indicate这类应用程序的SHQueryUserNotificationState只在Vista或更高版本上受支持。它也只有在Explorer shell运行时才起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-04 03:23:05

我发现了如何检测全屏Direct3D和OpenGL (例如“我的世界”)应用程序。

IDirectDraw7::TestCooperativeLevel()打电话。如果活动的全屏Direct3D应用程序正在运行或用户会话不活动(Win+L、Alt+Ctrl+Del、快速用户切换等),此函数将返回DDERR_EXCLUSIVEMODEALREADYSET

注意:使用DDCREATE_EMULATIONONLY调用DirectDrawCreateEx。这极大地减少了IDirectDraw7使用的资源。

我只在一个显示屏的Windows7 SP1 x64中测试过这种方法。

顺便说一句,对于全屏游戏,SHQueryUserNotificationState()返回QUNS_BUSY而不是QUNS_RUNNING_D3D_FULL_SCREEN。奇怪的是。

票数 2
EN

Stack Overflow用户

发布于 2009-08-03 12:45:21

尝试'IDirect3DDevice9::GetDisplayMode':

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

代码语言:javascript
复制
HRESULT GetDisplayMode(
  UINT  iSwapChain,
  D3DDISPLAYMODE * pMode
);

参数:

iSwapChainin

代码语言:javascript
复制
An unsigned integer specifying the swap chain. 

pModeout

代码语言:javascript
复制
Pointer to a D3DDISPLAYMODE structure containing data about the

适配器的

显示模式。与该设备的显示模式相反,如果该设备不具有全屏模式,则该模式可能不是活动的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1219454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档