2013-06-22 169 views
0

我創建了一個基本的Windows服務的Windows服務模板的幫助下,從微軟的Visual Studio IDE 2010旗艦版;我將帳戶類型設置爲本地系統,然後對其進行測試,然後將其設置爲LocalService,然後對其進行測試。在雙方我都有同樣的問題。我想檢查我的桌面文件夾(C:\用戶\ charqus \桌面)與下一個變量:C#Windows服務問題

private readonly string folderParent = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 

我已經印刷可變folderParent到EntryLog應用程序,這是結果: C:\ WINDOWS \ system32 \設置\ systemprofile \桌面

我曾訪問過這條路,我也不在那裏找到任何桌面文件夾。如果我嘗試使用我的服務從桌面列出所有文件(從該路徑),他不會列出任何內容。

謝謝!

+0

服務,因爲你已經知道,在*服務*帳戶運行。這些帳戶擁有自己的桌面文件夾。並且可能有多個用戶登錄到一臺機器,因此*應該訪問其桌面?也許告訴我們你想要解決的總體問題。它可能最終分裂成兩個程序 - 服務部分和由登錄到本機的每個用戶運行的單獨程序 –

+0

查看此處http://stackoverflow.com/a/5595738/397807。 Windows服務不綁定到任何用戶帳戶或當前登錄帳戶。 – tia

+0

感謝您的答案,但你有什麼建議嗎?停止使用服務並創建一個在後臺工作的C#隱形應用程序?這將解決我的問題?還是有更簡單的解決方案? – charqus

回答

0

該服務的Windows本地系統帳戶下運行,併爲你找到了訪問系統的用戶的(不存在的)桌面。

服務是指非用戶相關的背景進程。如果您的應用程序正在與用戶的桌面交互,它應該是一個普通的交互式應用程序 - 但可能是一個只顯示系統托盤中的圖標的不可見應用程序。將應用程序設置爲在登錄時自動啓動,方法是將其添加到所有用戶的啓動文件夾中。

+0

這將是偉大的,但我想從系統托盤中隱藏它,這是可能的嗎? – charqus

+0

在托盤中放置一個圖標是可選的。如果你願意,你可以完全看不見它。 –