0

코드에서 ExpandEnvironmentStrings 함수를 사용하여 % USERPROFILE %의 값을 가져옵니다. 독일어와 같은 현지화 된 OS에서도 EN 값을 얻고 있습니다. 예를 들어, "C \ Users \ Administrator"로 값을 가져옵니다. 그러나 c : \ Benutzer \ Administrator와 같은 현지화 된 값에 관심이 있습니다.ExpandEnvironmentStrings에서 지역화 된 값

현재로서는 ExpandEnvironmentStrings에서 반환 한 foldername을 전달하여 SHGetFileInfo를 사용하려고합니다. 실제로는 경로의 궁극적 인 폴더, 즉 "사용자"가 아닌이 경우 "관리자"로만 작동합니다. SHGetFileInfo를 사용하려면 개별 폴더에서 경로를 해제하고 지역화 된 값을 가져온 후 문자열을 조인해야합니다.

지역화 된 전체 값을 얻는 더 적절하고 적절한 방법이 있습니까?

+0

목표를 더 정확히 설명하고 목표를 보관하는 방법을 설명 할 수 있습니까? 현재 여러 가지를 혼합합니다. 현재 사용자의 폴더가 필요한 모든 사용자 프로필을 컴퓨터에서 가져와야합니까? 사용 환경에서 서버에 저장된 중앙 프로필을 사용합니까? 'SHGetSpecialFolderPath','SHGetFolderPath' 또는'SHGetKnownFolderPath'을 의미하니'SHGetFileInfo'가 아닌가요? – Oleg

답변

0

셸 관련 폴더를 찾으려면 환경 값을 사용해서는 안됩니다. XP 및 이전 버전에서는 SHGetFolderLocation의 CSIDL_PROFILE을 사용하고, Vista 이상에서는 SHGetKnownFolderIDList 이상의 FOLDERID_Profile을 사용해야합니다. 나는이 둘 모두가 현지화 된 지역을 돌려 줄 것이라고 믿는다.

1

환경 변수는 프로그램이 시작될 때 (환경 변수의 값이 설정 될 때) 정확해야합니다. 그게 모두 ExpandEnvironmentStrings입니다. 다른 언어로 번역되지 않습니다. 환경 변수의 값이 "C : \ Users \ Administrator"이면 API가이를 확장합니다.

현재 사용자의 홈 디렉토리 경로를 얻으려면 SHGetFolderPath 또는 SHGetKnownFolderPath으로 전화하십시오.

관련 문제