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"; } }
private bool checkLicence(string vLicenceKey, bool vStoreLicence) //riceve la licenza criptata e un parametro per stabilire se memorizzare o meno la licenza, se valida { string LicenzaDec; //stringa contenente la licenza decodificata //formato NOME_AZIENDA;VALIDO;GG/MM/AAAA string[] Licenza; //array contenente la licenza try { LicenzaDec = CryptEngine.Decrypt(vLicenceKey, true, 1); //decrypta la licenza Licenza = LicenzaDec.Split(';'); //inserisce la licenza nell array //0=Nome azienda-1=VALIDO-2=Data validita licenza if (Licenza.Length == 3) { //controlla la data della licenza che e' in formato italiano GG/MM/AAAA DateTime DataValiditaLicenza = DateTime.ParseExact(Licenza[2], @"dd/MM/yyyy", CultureInfo.CreateSpecificCulture("it-IT")); if ((Licenza[1] == "VALIDO") && (DataValiditaLicenza.CompareTo(DateTime.Today) > 0)) { //licenza valida lblModo.Text = "Concesso in licenza a " + Licenza[0] + "\nLicenza valida fino al " + DataValiditaLicenza.Day.ToString() + "/" + DataValiditaLicenza.Month.ToString() + "/" + DataValiditaLicenza.Year.ToString(); ChiudiApplicazione = false; if (vStoreLicence) { LicenceKey.SetValue("KEY", vLicenceKey, RegistryValueKind.String); LicenceKey.Flush(); } return(true); } else { //licenza non valida return(false); } } else { return(false); } } catch { return(false); } }
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(); } } }