문제

라이센스에 의문이 있습니다. C# 응용 프로그램을 사용하고 있습니다. 시나리오 : 사용자는 파일 형태로 메일을 통해 응용 프로그램 라이센스를받습니다. 라이센스 파일을 데스크탑에 저장합니다. 나중에 라이센스를 선택하고 등록을 클릭합니다. 이제 신청서가 등록되었습니다 (라이센스). 며칠 후, 사용자가 데스크탑에서 라이센스 파일을 삭제하는 경우. 파일이 없기 때문에 응용 프로그램은 작동이 중지됩니다. 레지스트리 또는 파일 (비밀 경로) 어딘가에 라이센스 세부 정보를 저장하고 싶습니다. 그러나 해당 사용자 계정에 레지스트리 또는 파일을 읽고 쓰기에 충분한 권한이 없다면 어떨까요? 좋은 방법은 무엇입니까? 다른 방법을 알고 있습니까? 나는이 지역에서 초보자입니다. 그러니 도와주세요.

미리 감사드립니다.

도움이 되었습니까?

해결책

모든 응용 프로그램 데이터는 % AppData % 디렉토리에 저장되어야합니다.

C#을 지정 했으므로 다음은 폴더를 가져 오는 코드입니다.

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

이것은 다음 위치로 출력됩니다 : xp : c :/documents and settings/사용자 이름/응용 프로그램 데이터/Vista : C :/Users/사용자 이름/appdata/로밍

응용 프로그램에 대한 해당 디렉토리에 폴더를 작성하고 여기에 복사하는 것이 좋습니다.

다른 팁

Microsoft는 스토리지 위치에 대한 몇 가지 제안이 있습니다 Windows Vista : 응용 프로그램 인증 및 호환성 문서.

따라서 [귀하의 프로그램]이 공유 데이터 (코드가 아닌)를 항상 변경하고 있다면 [데이터]는 논리적으로 ProgramData 폴더로 이동해야합니다. 개별 데이터 인 경우 사용자 프로필로 이동할 수 있습니다.

라이센스 파일을 사용하여 ProgramData CompanyName 폴더에 저장합니다. 그러나 당사의 라이센스는 사용자 당이 아닌 기계 별 기반입니다. 기본적 으로이 폴더는 Windows에 숨겨져 있지만 UAC에 의해 보호되지 않습니다.

어떤 사람이 나에게 말했듯이, "레지스트리는 응용 프로그램과 사용자와의 응용 프로그램의 상호 작용이 아니라 시스템과의 응용 프로그램의 상호 작용을위한 것입니다." 이것이 올바른 방법인지 모르겠습니다. 사용자 정보를 레지스트리에 저장했지만 더 이상은 아니 었습니다. 파일에 설정을 넣는 것이 더 나은 방법입니다. 일련 번호와 같은 물건을 저장하려면 울음을 잊지 마십시오.

절대적으로,이 경우 레지스트리에 서면을 작성하는 것은 아마도 라이센스를 설명하는 방식으로 삭제, 추가 또는 변경 될 수있는 경우에도 피해야 할 것입니다. 라이센스가 설치 후 어떤 식 으로든 교체되거나 변경되어야하는 경우 파일에 작성하는 것이 좋습니다. 하지만 일반적으로 데스크탑에 그런 중요한 파일이나 데이터를 작성하는 것이 좋습니다. 아마도 응용 프로그램 자체의 디렉토리에 포함 된 폴더에 쓸 것입니다. 필요한 경우 응용 프로그램 설치에 포함시킵니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top