这段代码通过 F1 热键 检测当前活动窗口是否以全屏模式显示,并在屏幕上显示检测结果。它主要针对特定场景(如视频播放器全屏模式或游戏全屏模式),并且窗口最大化时不会误判为全屏。

 

; 视频播放器全屏时生效,原神全屏时生效,窗口最大化时无效
F1::
WinGet, active_id, ID, A
ToolTip % IsFullDisplay(active_id)
Return

; WinActive("A")

IsFullDisplay(hWnd) {  ; v0.66 by SKAN on D38S/D391 @ tiny.cc/isfulldisplay
  Local
  hMon := DllCall("MonitorFromWindow", "Ptr",hWnd, "Int",0x2, "Ptr") ; MONITOR_DEFAULTTONEAREST
  , VarSetCapacity(MONITORINFO,40,0), VarSetCapacity(WINDOWINFO,60,0), VarSetCapacity(RECT,16)
  , NumPut(40, MONITORINFO, "Int"), DllCall("GetMonitorInfo", "Ptr",hMon, "Ptr",&MONITORINFO)
  , NumPut(60, WINDOWINFO, "Int"), DllCall("GetWindowInfo", "Ptr",hWnd, "Ptr",&WINDOWINFO)
  , Style:=NumGet(WINDOWINFO, 36, "UInt"),  WS_CAPTION:=0xC00000, WS_THICKFRAME:=0x40000
  Return ( DllCall("SubtractRect", "Ptr",&RECT, "Ptr",&MONITORINFO+04, "Ptr",&WINDOWINFO+04) = 0
    ? ( (Style & WS_CAPTION) = 0 ? True : (Style & WS_THICKFRAME) = 0 ? True : False ) : False )
}

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。