寫的EXE檔案,抓屏,發送流,一點問題也沒有,但是寫成服務后,抓取到的就位白屏,將InterActive屬性設定為True后也不行,怎么解決呢?
uj5u.com熱心網友回復:
好像服務有個桌面互動的概念uj5u.com熱心網友回復:
服務和普通應用程式運行在不同的桌面uj5u.com熱心網友回復:
服務程式應該是在WinLogon虛擬桌面時創建的. 而我們平時操作默認桌面為名為 Default的虛擬桌面.這時平常寫的抓屏程式,肯定不能正常作業了. .
解決辦法: 可以先把行程空間切換到Defalut桌面,然后再去抓屏
輔助函式:
OpenDesktop
SetThreaddesktop
關健是第二個函式噢. 你使用的時候可能還會遇到問題, 設定會失敗
這里要注意,使用SetThreaddesktop要放在一個純靜的執行緒中才可以的噢. 這樣就OK了..
uj5u.com熱心網友回復:
謝謝大家的建議,我試試OpenDesktop SetThreaddesktop兩個函式,有結果后回復給分uj5u.com熱心網友回復:
如何使SetThreaddesktop在一個純凈的執行緒里呢?請教!uj5u.com熱心網友回復:
不要用服務程式抓屏。uj5u.com熱心網友回復:
http://blog.csdn.net/lee576/article/details/1904373最好都看一遍,主要看后面的內容
uj5u.com熱心網友回復:
樓主如果在XP上的話問題可以解決,切換執行緒令牌(Token)切到普通用戶桌面上可以解決的.Windows Vista和Windows 7上對服務要求更嚴格了.以前XP上可以解決的方法我試了個遍也沒用.
現在我做的通用處理方案是服務啟動一個普通用戶權限(創先普通用戶token并賦予該行程)的行程,然后這個行程截屏,行程間通訊的方式傳給服務.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/146357.html
標籤:網絡通信/分布式開發
