在具有多臺顯示器的計算機上,其中一臺顯示器沒有顯示桌面,是否有任何方法可以從程序中繪製該顯示器?訪問不包含桌面的顯示器
推理:我需要在單獨的顯示器上全屏顯示可變圖像,而用戶不能用鼠標打擾屏幕,也不能在窗口頂部移動窗口。例如:一臺電腦連接了一臺監視器和一臺投影機;顯示器顯示「正常」桌面,投影機顯示生成的圖像(比如顏色梯度)。
第一次使用將在Win7上,但如果存在可移植的解決方案,Linux下的X11解決方案也會很好。
在具有多臺顯示器的計算機上,其中一臺顯示器沒有顯示桌面,是否有任何方法可以從程序中繪製該顯示器?訪問不包含桌面的顯示器
推理:我需要在單獨的顯示器上全屏顯示可變圖像,而用戶不能用鼠標打擾屏幕,也不能在窗口頂部移動窗口。例如:一臺電腦連接了一臺監視器和一臺投影機;顯示器顯示「正常」桌面,投影機顯示生成的圖像(比如顏色梯度)。
第一次使用將在Win7上,但如果存在可移植的解決方案,Linux下的X11解決方案也會很好。
在Linux上,使用虛擬幀緩衝區xvfb很容易。該命令是:
Xvfb :1 -screen 0 1600x1200x32
您可以通過設置環境變量DISPLAY=:1
最好的部分是用戶甚至不必擔心鼠標或鍵盤干涉運行在虛擬屏幕上的程序。對測試非常有用。
非常感謝您使用Linux解決方案:我實際上希望這將是一個單線程或至少相當容易。 :-) – 2013-02-18 18:19:56
沒問題,請注意/接受,如果你發現它有幫助。 – 2013-02-18 18:38:15
我upvoted,但因爲我的主要問題是Windows,我沒有標記爲接受。 – 2013-02-19 10:04:03
在Linux下,你還可以額外的顯示器
Xorg :1 -config /path/to/xorg_1.conf
上運行第二個X會話,但你需要編寫一個xorg_1.conf配置文件中覓食。
你弄清楚如果這在Windows中是可行的?我個人並不關心如何(D2D,D3D,OpenGL),但不得不請求客戶擴展他們的桌面是我想避免的。 – 2014-03-20 08:40:11
@MikeVersteeg:我從來沒有完全解決過這個問題。當前的「解決方案」使用'setWindowState(Qt :: WindowFullScreen)'在桌面的「常規」屏幕之一上全屏顯示一個窗口。雖然這可以防止鼠標和大多數其他窗口顯示在我的窗口前,但它不會阻止所有重疊的窗口(例如通知窗口)。 – 2014-03-28 08:29:35
@MikeVersteeg [This answer](http://stackoverflow.com/a/13398721/127670)說,它在Windows上是**不可能**。 – 2014-05-13 07:29:39