Musisz zapisać pierwszy czas działania programu, aby to zrobić. Prawdopodobnie to zrobię, używając wbudowanych ustawień aplikacji w visual studio. Zrób program o nazwie InstallDate, który jest ustawieniem użytkownika, a domyślnie jest to DateTime.MinValue lub coś podobnego (np. 1/1/1900).
wtedy, gdy program jest uruchamiany czek jest prosta:
if (appmode == "trial")
{
// If the FirstRunDate is MinValue, it's the first run, so set this value up
if (Properties.Settings.Default.FirstRunDate == DateTime.MinValue)
{
Properties.Settings.Default.FirstRunDate = DateTime.Now;
Properties.Settings.Default.Save();
}
// Now check whether 30 days have passed since the first run date
if (Properties.Settings.Default.FirstRunDate.AddMonths(1) < DateTime.Now)
{
// Do whatever you want to do on expiry (exception message/shut down/etc.)
}
}
Ustawienia użytkownika przechowywane są w dość dziwnym miejscu (coś jak C: \ Documents and Settings \ nazwa_użytkownika \ Ustawienia lokalne \ Dane aplikacji) tak dla przeciętnego Joego to i tak będzie trudne. Jeśli chcesz być paranoikiem, po prostu zaszyfruj datę przed zapisaniem jej w ustawieniach.
EDYCJA: Westchnienie, błędne odczytanie pytania, nie tak złożone, jak myślałem>.>
'DateTime expiryDate = new DateTime (startDate);' nie jest wymagany – Scoregraphic
'DateTime expiryDate = startDate.AddDays (30);' byłby poprawny, ponieważ 'expiryDate.AddDays (30)' zapisze wynik w nirwanie. – Oliver
Oliver, dzięki za łatkę :) –