사용자 프록시 정보를 탐지하는 코드를 작성했습니다. 이것은 프로그램을 직접 실행할 때 작동하지만 프로그램이 서비스에 의해 호출되지 않으면 작동하지 않습니다. 이 서비스는 사용자의 Firefox 설정을 가져올 현재 사용자 폴더 경로를 알 수 없습니다. 이 프로그램은 서비스에 의해 실행되어야합니다 ...이 서비스를 만들기 위해 현재 userprofile을 어떻게 얻을 수 있습니까?서비스 내에서 현재 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
나는이 (fails- 파일을 얻을 서비스 내에서 실행하는 경우 되지 않음) 발견 :
C:\\Profiles\\NetworkService\\APPLICATION DATA\\MOZILLA\\FIREFOX\\PROFILES.INI
참고 : MyUserName 에다 나의 실제 사용자 이름으로 대체됩니다
서비스는 "데스크톱과 상호 작용하여"전화를 걸도록 설정되었습니다.이 솔루션을 우연히 만났습니다. Win32 "LoadUserProfile"API를 사용하여 사용자 프로필을 명시 적으로로드합니다. 사용자 프로필을로드하기 전에 사용자에 대한 로그온 세션 (LogonUser 호출)을 만들어야합니다. 아직 테스트하지 않았습니다 – mytwocents