在windows下判断当前系统是否处于全屏独占的模式下,通过这个能够获知用户是否在玩游戏,看电影等等。
 
 
 
 
以下采用的办法是通过判断屏幕的四角是否属于同一个窗口句柄。
 
 
判断当前系统是否处于全屏独占的模式//检查当前是否有程序处于全屏独占模式 
判断当前系统是否处于全屏独占的模式bool     IsFullScreen() 
判断当前系统是否处于全屏独占的模式
判断当前系统是否处于全屏独占的模式        //声明4个句柄,用于获取屏幕角落的的四个点 
判断当前系统是否处于全屏独占的模式        HWND     pWnd1     =     NULL; 
判断当前系统是否处于全屏独占的模式        HWND     pWnd2     =     NULL; 
判断当前系统是否处于全屏独占的模式        HWND     pWnd3     =     NULL; 
判断当前系统是否处于全屏独占的模式        HWND     pWnd4     =     NULL; 
判断当前系统是否处于全屏独占的模式        //获取当前屏幕分辨率 Width 
判断当前系统是否处于全屏独占的模式        int iCx=GetSystemMetrics(SM_CXSCREEN); 
判断当前系统是否处于全屏独占的模式        //获取当前屏幕分辨率 Height 
判断当前系统是否处于全屏独占的模式        int iCy=GetSystemMetrics(SM_CYSCREEN); 
判断当前系统是否处于全屏独占的模式 
判断当前系统是否处于全屏独占的模式        POINT     pt1; 
判断当前系统是否处于全屏独占的模式        pt1.x     =     1; 
判断当前系统是否处于全屏独占的模式        pt1.y     =     1; 
判断当前系统是否处于全屏独占的模式        POINT     pt2; 
判断当前系统是否处于全屏独占的模式        pt2.x     =     1; 
判断当前系统是否处于全屏独占的模式        pt2.y     =     iCy-1; 
判断当前系统是否处于全屏独占的模式        POINT     pt3; 
判断当前系统是否处于全屏独占的模式        pt3.x     =     iCx-1; 
判断当前系统是否处于全屏独占的模式        pt3.y     =     1; 
判断当前系统是否处于全屏独占的模式        POINT     pt4; 
判断当前系统是否处于全屏独占的模式        pt4.x     =     iCx-1; 
判断当前系统是否处于全屏独占的模式        pt4.y     =     iCy-1; 
判断当前系统是否处于全屏独占的模式 
判断当前系统是否处于全屏独占的模式        pWnd1     =     WindowFromPoint(pt1); 
判断当前系统是否处于全屏独占的模式        pWnd2     =     WindowFromPoint(pt2); 
判断当前系统是否处于全屏独占的模式        pWnd3     =     WindowFromPoint(pt3); 
判断当前系统是否处于全屏独占的模式        pWnd4     =     WindowFromPoint(pt4); 
判断当前系统是否处于全屏独占的模式 
判断当前系统是否处于全屏独占的模式        if (pWnd1     ==     pWnd2     &&     pWnd2     ==     pWnd3     &&     pWnd3     ==     pWnd4) 
判断当前系统是否处于全屏独占的模式        { 
判断当前系统是否处于全屏独占的模式                return true
判断当前系统是否处于全屏独占的模式        } 
判断当前系统是否处于全屏独占的模式        return false
判断当前系统是否处于全屏独占的模式
 
 
 
另外MSDN给出了一个官方的解决办法,暂时还没有测试。
 
shellapi.h

ABN_FULLSCREENAPP Notification


Notifies an appbar when a full-screen application is opening or closing. This notification is sent in the form of an application-defined message that is set by the ABM_NEW message.
Syntax
ABN_FULLSCREENAPP 
    fOpen = (BOOL) lParam; 
			
Parameters
fOpen
A flag specifying whether a full-screen application is opening or closing. This parameter is TRUE if the application is opening or FALSE if it is closing.
Return Value
No return value.
Remarks
When a full-screen application is opening, an appbar must drop to the bottom of the z-order. When it is closing, the appbar should restore its z-order position.
Notification Requirements
Minimum DLL Version None
Custom Implementation No
Header shellapi.h
Minimum operating systems Windows NT 3.51, Windows 95