2013-01-18 4 views
1

제발 말씀해주십시오. 'Settings.ini'를 사용하여 설정을 저장하는 응용 프로그램을 작성했습니다. 응용 프로그램은 InnoSetup을 사용하여 설치됩니다. 여러 사용자 계정이 있고 그 중 하나에 응용 프로그램이 설치된 경우 다른 계정에서 응용 프로그램을 실행하려고하면 "쓸 수 없습니다 ...."라는 오류 메시지가 나타납니다. 즉, 다른 계정에서 실행하면 응용 프로그램에 설정 파일에 쓸 수있는 권한이 없습니다. Windows XP에서 어떤 일이 발생하는지 모르겠지만 Windows 7에서 응용 프로그램이 작동하는 방식입니다. 제발, 내 응용 프로그램에서 여러 사용자가 사용할 수 있도록 정의해야하는 내용이 있거나 변경해야하는 내용이 있습니까? 임명 동안에, InnoSetup 매개 변수에서 어딘가에? 감사합니다.응용 프로그램 설정 + IniFile + 사용자 권한

+2

settings.ini는 어디에 저장합니까? 올바른 사용자 별 디렉토리를 응용 프로그램 데이터로 사용합니까? 예를 들어 ShGetSpecialFolderPath (0, path, CSIDL_Personal, False)를 사용하십시오 ... – Andreas

+1

그리고 EXE를 어디에 설치 했습니까? –

+0

@Andreas 'APPDATA'또는 'USERPROFILE'또는 'LOCALAPPDATA'에 대한 GetEnvironmentVariable http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms683188.aspx를 통해 경로를 얻는 것이 더 간편하다고 생각합니다 –

답변

1

사용자는 프로그램 파일이나 다른 일반 폴더에 프로그램을 설치해야합니다.이 프로그램은 모든 사용자가 읽고 실행할 수 있지만 쓰기 또는 삭제할 권한은 없습니다. 모든 사용자는 비파괴적인 권한 (읽기 및 실행)과 무해한 (삭제, 덮어 쓰기)을 가져야합니다.

즉, 설치 관리자가 관리자 권한과 UAC를 요청해야 함을 의미합니다. 입면도 - InnoSetup 포럼이나 문서 작성 방법을 묻습니다. 매니 페스트 리소스를 설치 프로그램에 포함시키는 것을 처리 할 수 ​​있습니다. 일반 사용자가 설치 프로그램을 실행하고 설치 프로그램이 관리자 권한으로 다른 사용자 이름과 암호를 묻는 것은 정상입니다.


설정 및 기타 사용자 고유 데이터는 특수 사용자 별 데이터 폴더에 저장해야합니다. 보통 사용자 프로필 아래 AppLocal 폴더입니다. 그러나 이것은 설치 프로그램이 아닌 응용 프로그램의 작업입니다. 설치 프로그램은 전역 설정 템플릿을 만들 수 있습니다. 응용 프로그램은 지정된 사용자에 따라 1 차 실행시 사용자 로컬 설정으로 복사하거나 계단식 설정 저장소가 구현 된 경우 사용자 로컬 설정으로 재정의합니다.

실행 명령 프롬프트에서, set 명령

+1

사용자별로 ini 파일을 적용하려면 Inno Setup을 사용하여 ini 파일을 만들지 말 것을 권장합니다. 대신 사용자가 프로그램을 실행할 때 사용자의 ini 파일이 있는지 확인하십시오. 존재하지 않으면 프로그램이 사용자 별 폴더 (예 : % USERPROFILE % \ AppData \ Roaming \ \ \)를 만들고이 새 데이터 폴더에 사용자의 ini 파일을 만듭니다. –

+0

@MaxWilliams 나는 구술을 사용했다. 필자는 설치 프로그램과 응용 프로그램의 책임을 혼합했습니다. 수정 해줘서 고마워. –

관련 문제