private void DemoMode() { txtLicenza.Visible = true; btnInsLicenza.Visible = true; if (InfoKey.GetValue("1STRUN") == null) {//se non e' mai stato eseguito il programma crea la chiave contenente la data della prima esecuzione InfoKey.SetValue("1STRUN", CryptEngine.Encrypt(DateTime.Today.ToShortDateString(), true, 2), RegistryValueKind.String); InfoKey.Flush(); } DateTime DataPrimoUtilizzo = DateTime.Parse(CryptEngine.Decrypt(InfoKey.GetValue("1STRUN").ToString(), true, 2)); //controlla se e' scaduto il periodo di prova int VerificaDataDemo = DateTime.Today.Subtract(DataPrimoUtilizzo).Days; //MessageBox.Show(VerificaDataDemo.ToString() +" > " + ( NUMERO_GIORNI_DEMO).ToString()); if (Math.Abs(VerificaDataDemo) > NUMERO_GIORNI_DEMO) { //MessageBox.Show("Periodo di prova terminato"); MessageBox.Show("Nessuna licenza"); //Application.Exit(); ChiudiApplicazione = true; lblModo.Text = "Inserisci un codice di licenza valido per continuare"; this.ShowDialog(); } else { lblModo.Text = "Demo - Installato il giorno: " + DataPrimoUtilizzo.Day.ToString() + "/" + DataPrimoUtilizzo.Month.ToString() + "/" + DataPrimoUtilizzo.Year.ToString() + "\nRestano ancora " + (NUMERO_GIORNI_DEMO + VerificaDataDemo).ToString() + " giorni di prova"; } }
bool ChiudiApplicazione = false;//variabile che determina se chiudere solo la form o tutta l'applicazione public GestoreLicenza() { InitializeComponent(); string OurAppKeyStr = @"SOFTWARE\Metilest2"; //imposta la root del progetto nel registro OurAppRootKey = CurrentUserKey.CreateSubKey(OurAppKeyStr); //crea la root, se non esiste gia InfoKey = OurAppRootKey.CreateSubKey("Info"); if (InfoKey.GetValue("LASTRUN") != null) //controlla se esiste il la chiave contenente la data dell ultimo utilizzo { DateTime DataUltimoUtilizzo = DateTime.Parse(CryptEngine.Decrypt(InfoKey.GetValue("LASTRUN").ToString(), true, 2)); int VerificaDataUltimoUtilizzo = DataUltimoUtilizzo.CompareTo(DateTime.Today); //MessageBox.Show(VerificaDataUltimoUtilizzo.ToString() + " - " + DataUltimoUtilizzo.ToShortDateString() + " - " + DateTime.Today.ToShortDateString()); if (VerificaDataUltimoUtilizzo > 0) { //qualcosa non va, stanno barando sulla data -1=precedente 0=attuale 1=successiva MessageBox.Show("Controlla la data del Computer!"); Application.Exit(); //ChiudiApplicazione = true; this.ShowDialog(); } } InfoKey.SetValue("LASTRUN", CryptEngine.Encrypt(DateTime.Today.ToShortDateString(), true, 2), RegistryValueKind.String); InfoKey.Flush(); LicenceKey = OurAppRootKey.CreateSubKey("Licence"); if (LicenceKey.GetValue("KEY") == null) {//se non e' inserita la licenza va in modalita demo this.DemoMode(); } else { //modalita licenza if (checkLicence(LicenceKey.GetValue("KEY").ToString(), false)) {//controlla se la licenza e' valida e attiva this.LicencedMode(); } else {//licenza non valida this.DemoMode(); } } }