5

로그를 작성해야하는 winforms 앱이 있습니다. 또한 앱은 UAC 경고없이 실행하고 관리자가 아닌 계정을 사용해야합니다.XP, Vista 및 Windows 7과 호환되는 로그 파일을 안전하게 저장할 수있는 위치는 어디입니까?

어디에서 기본 보안 설정을 실행하지 않고 로그를 기록 할 수 있습니까? 또한 Windows XP, Vista 및 7에서 작동해야합니다.

모든 사용자가 동일한 로그 파일 세트에 쓸 수있는 경우 추가 포인트입니다.

답변

6

경로를 하드 코딩 할 수 없습니다. 대신 SHGetFolderPath를 호출하여 Windows를 저장할 위치를 물어보십시오. SHGetFolderPath는 현재 사용자 (또는 모든 사용자)의 AppData 디렉토리 위치를 반환하는 데 사용할 수 있습니다. C 솔루션

MSDN 기사 : http://support.microsoft.com/kb/310294

유용한 델파이 예 : 가, 경로에 대한 한 번 쿼리를 수행 절대 문자열로 변환 할 위험입니다 http://delphi.about.com/od/kbwinshell/a/SHGetFolderPath.htm

주와 설정에 저장하십시오. Windows에서 변경할 수 있기 때문입니다. 그들은 도메인에 가입 할 수 있고, 창문을 업그레이드 할 수 있습니다. 그리고 창문은 실제로 파일을 옮길 수 있습니다. "이 폴더의 위치"를 다시 묻지 않고 이전 위치를 가리키면 끊어집니다. 그곳에 가면 ...

1

SHGetFolderPath을 사용하면 사용자 별 또는 글로벌 로그 파일 디렉토리를 사용할 수 있습니다. CSIDL_COMMON_APPDATA을 사용하는 경우 "이 정보는 로밍되지 않으며 컴퓨터를 사용하는 모든 사용자가 사용할 수 있습니다." 그것은 당신이 원하는 것 같은데.

관련 문제