我試圖從我寫的服務中獲取Windows桌面的大小(整個事情,不只是一個屏幕)。從Windows服務獲取桌面大小?
在的WinForms - 標準C#方法:
SystemInformation.VirtualScreen.Width
SystemInformation.VirtualScreen.Height
似乎工作(如果導入的WinForms DLL,我想避免的) - 但它返回錯誤的值。桌面大小爲2048x768
(2個屏幕),但服務報告1024x768
(大概只能在其中一個屏幕上顯示)。
檢查服務與桌面交互的選項沒有效果。
有什麼想法?
編輯:
在C#: Get complete desktop size?貼不服務的內部工作的解決方案。他們都報告錯誤的價值。
有趣的是,這似乎是一種報道的價值變化,是沒有任何關係的實際桌面大小的(有些機器報告800x600
即使那臺機器上的單個顯示器是更高的分辨率。)
所以 - 還有什麼想法?放入註冊表和/或到命令行是可以的。唯一的限制是我無法啓動一個winforms應用程序來解決它。
你考慮到一個事實,即該服務可能會一具無頭的系統上運行?或者根本沒有用戶登錄? – Dmitry 2012-02-29 22:29:11
我希望這個http://stackoverflow.com/questions/1317235/c-get-complete-desktop-size會幫助你。 – 2012-02-29 22:29:29
我應該澄清。無頭系統在這種設置中不是一個問題。其次,我附加到登錄事件 - 所以我知道什麼時候嘗試計算出桌面大小(僅在有人登錄後)。 – debracey 2012-02-29 22:39:44