我正在用 C# 编写Alt+Tab替换,并且在使用全屏应用程序时遇到问题。
有没有办法检测SetForegroundWindow(hWnd)
来电是否会改变屏幕分辨率?或者等效地,如果hWnd
是全屏应用程序?我想等到解决方案更改完成,或者如果没有更改,请立即进行。
屏幕分辨率更改是异步完成的,函数调用在它发生之前就返回了,所以我的代码过早地运行,并将我的应用程序绘制到全屏应用程序的表面上,尺寸错误,然后在分辨率更改后,它看起来特别难看。
如果有人感兴趣,我的应用程序的来源是https://bitbucket.org/FrigoCoder/frigotab/src 。
为了澄清,我更感兴趣的是事先知道是否发生了分辨率变化,而不是稍后检测它。我已经知道了一个半解决方案,我SetForegroundWindow()
在其中调用GetDesktopWindow()
或其他一些窗口并观看SystemEvents.DisplaySettingsChanging
和DisplaySettingsChanged
. 但是,如果发生分辨率更改,这只会给我一个延迟的异步通知,并且不会告诉我是否没有。