我編寫了一些代碼來檢測用戶代理信息。這可以直接運行程序,但如果程序被服務調用,它不起作用。該服務無法知道當前的用戶文件夾路徑來抓取用戶的Firefox設置。該程序需要由服務運行...該服務如何獲得當前的用戶配置文件來實現這個功能?從服務中獲取當前UserProfile路徑
代碼示例:
public static string FIREFOX_PROXY_PATH = @"\APPLICATION DATA\MOZILLA\FIREFOX\";
public static string FIREFOX_PROXY_PROFILE_FILE_NAME = "PROFILES.INI";
string strProfPath = System.Environment.GetEnvironmentVariable("USERPROFILE") + FIREFOX_PROXY_PATH + FIREFOX_PROXY_PROFILE_FILE_NAME;
當從桌面我得到這個運行(工程─文件中找到):
C:\\Users\\myusername\\APPLICATION DATA\\MOZILLA\\FIREFOX\\PROFILES.INI
當從一個服務,我得到這個(沒有─文件中運行未找到):
C:\\Profiles\\NetworkService\\APPLICATION DATA\\MOZILLA\\FIREFOX\\PROFILES.INI
注意名稱:myusername被替換我的實際用戶名
該服務被設置爲「與桌面交互」撥打電話......我也只是遇到了這個可能的解決方案: 顯式地加載使用Win32「LoadUserProfile」 API用戶配置文件。請注意,您需要先爲用戶創建一個登錄會話(調用LogonUser),然後才能加載用戶的配置文件。 尚未測試 – mytwocents 2009-12-17 01:53:23