2009-07-10 2 views
2

Windows 컴퓨터에 응용 프로그램 설정을 적용하기위한 시작점을 찾고 있습니다. 나는 하나 이상의 응용 프로그램을 가지고 있습니다. 개인적인 이유로 레지스트리를 사용하고 싶지는 않습니다 : 나는 일반 텍스트 초기화 파일 (.ini)을 선호합니다. 또한 실행 파일과 동일한 디렉토리에 파일을 보유하고있는 것 같지 않은 이상적인 상황에서 사용자 또는 시스템 관리자가 작성할 수있는 일반 장소에 보관할 수 있습니다.초기화 파일을 창에 넣을 위치

맞아요, 저는 Windows 사용자가 아니며, 내 첫 번째 추측은 $HOME/.my_company_name/etc/my_company_name이지만, Windows에서 이러한 장소와 개념적으로 비슷한 것이 있습니까?

그냥 SET 출력으로보고 추측 :

 
%APPDATA% 
%HOMEDRIVE%%HOMEPATH%\Local Settings 
%SYSTEMROOT% 

을하는 방식으로 이러한 변수는 여전히 Windows 서비스 내에서 존재 여부를 난 아직도 ...

답변

4

을 선택해야합니다 나는의 AppData 무엇을 생각 네가 원해.

SHGetFolderPath (SHFOLDER.DLL에서)를 사용하여 프로그래밍 방식으로이 코드를 가져올 수 있습니다. MSDN 'Data and Settings Management' 가입일

(4.2 '분류 및 저장 애플리케이션 데이터를 올바르게 "섹션을 참조) szAppData에

TCHAR szAppData[MAX_PATH]; 
… 
hr = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szAppData); 

추가] [company name]\[product name]\[version] 사용 PathAppend :

PathAppend(szAppData, "Company\Product\1.0\File.ini") 

비 사용자 특정에도 CSIDL_COMMON_APPDATA있다 비 로밍 데이터 (사용자가 다른 컴퓨터에 로그온 할 때 네트워크를 통해 복사하면 안되는 데이터)는 CSIDL_LOCAL_APPDATA입니다.

+0

동의합니다. 로밍이 켜져 있으면 해당 폴더도 네트워크를 통해 사용자와 로밍합니다. –

+0

힌트를 보내 주셔서 감사합니다. INI 파일을 맵 사전에 읽고이 함수를 CSIDL_COMMON_APPDATA에 대해 한 번, CSIDL_LOCAL_APPDATA에 대해 두 번 호출하는 함수를 작성했습니다. szAppData는 \로 끝나지 않습니다. 그 WXP 특정 무엇입니까? – mariotomo

+0

ini 파일을 읽는 win32 API가 있습니다. GetPrivateProfileString (http://msdn.microsoft.com/en-us/library/ms724353(VS.85).aspx) PathAppend를 사용하면 그것이 \로 끝나는 지에 대해 걱정할 필요가있다. win32 방법에 오신 것을 환영합니다. – danio

관련 문제