2012-11-22 2 views
0

가능한 중복 : 위해 30 일을 예약하기 위해 나는 30 일 시험 기간이 시험 응용 프로그램을 프로그래밍하고
how can i make my product as a trial version for 30 days?
Implementing a 30 day time trialWindows에서 시스템 시간을 변경 하시겠습니까?

,

사용자, 시스템 시간 변경을 확인해야합니다.

예를 들어, 사용자가 시스템 날짜와 시간에 2 일을 더하면 평가판 기간을 손상시키지 않고 DateTime에서 시간 변경을 뺀 30 일 동안 유지됩니다.

이벤트 로그를 읽지 만, 이렇게하려면 관리 권한이 필요합니다. 항상 사용할 수있는 것은 아닙니다.

관리 권한이 필요없이 이러한 정보를 얻을 수있는 방법이 있습니까?

+3

시스템 시간에 의존하는 대신 라이센스 키를 사용하여 "전화 집"으로 응용 프로그램을 만드는 것을 고려 했습니까? 아니면 NTP 서버를 사용하고 있을까요? 또한 그런 사용자가 실제로 소프트웨어를 구매할 가능성이 얼마나 큰지 고려해 보셨습니까? (실제로 얼마나 많은 차이를 두 었는지 비교해보십시오.) –

+0

Thanks @JonSkeet,하지만이 모든 것이 준비되었지만 지금까지 아키텍처를 변경할 수는 없다고 생각합니다. 고마워요 :) –

+2

다시, 얼마나 많은 판매가이 문제로 인해 실제로 잃을 것이라고 생각합니까? 얼마나 많은 노력을 기울일 것인가? –

답변

0

시스템 시간의 변경을 찾는 대신 첫날의 날짜를 기록하고 첫날 이후 30 시간 범위를 계산하는 데이터베이스를 사용할 수 있습니다. 사용자가 처음으로 응용 프로그램을 열 때

그래서, 당신은 오늘의 날짜 (처음 개방의 날) 30 일 오늘 (처음 개방의 날짜) 이후

을 추가 할 데이터베이스를 쿼리해야합니다 날짜를 얻으려면 오늘과 30 일 후에 DateTime.Now 함수를 사용하십시오. 당신이 일을 얻는 경우에

 string Today = DateTime.Now.Day + " - " + DateTime.Now.Month + " - " + DateTime.Now.Year; 
     string End = DateTime.Now.AddDays(30).Day + " - " + DateTime.Now.AddDays(30).Month + " - " + DateTime.Now.AddDays(30).Year; 

위의 방법의 단점은 사용자가 올해 (2070), 말에서 자신의 응용 프로그램을 시작하면 다음 자신의 응용 프로그램이 올해까지 만료되지 것입니다 (2070)

그래서 최고 사용자의 컴퓨터에서 날짜를 가져 오는 대신 온라인 소스 http://www.thetimenow.com/ 에서 가져옵니다.

-1

남은 일을 저장하고 datetime 및 마지막 체크 datetime을 설치하면됩니다. 두 가지 모두 설치시 설정되어 있는지 확인하십시오. 사용자가 그가 다시 날짜를 설정 할 때 자신의 남은 시간을 줄이기 때문에이 날짜를 수정하는 사용자를 억제 할 추가 수정없이 프로그램

if (lastCheck > DateTime.Now) 
    { 
     lastCheck = DateTime.Now; 
    } 
else 
    { 
     remainingDays = (DateTime.Now - lastCheck).TottalDays; 
    } 

을 시작

. 좀 더 많은 코드로 이것을 피할 수 있습니다. 나는 그것의 상당히 간단하면서도 효율적이라고 생각한다.

편집 : 질문이 잘못 이해되었을 수 있습니다.

코드 과도 함없이 원하는대로 할 방법이 없습니다. 가장 중요한 것은 크래킹/엑소 루팅으로부터 앱을 보호하는 것입니다. 사용자가 날짜를 가지고 놀고 싶다면 그것은 손실입니다.

응용 프로그램 특성상 예상되는 내용이라면 응용 프로그램이 완료되기 전에 처리해야합니다.

+1

설치하기 전에 시스템을 2020 년으로 변경하면 어떨까요? 이게 효과가 있니? –

+0

DateTime의 시간 간격은 00:00:00 (자정), January 1, 0001 Anno Domini (Common Era) ~ 오후 11:59:59 P.M., 9999 년 12 월 31 일 주 오전 (CJ) 그레고리력. 괜찮을 것입니다. –