Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Creare una licenza d'uso via web per Visual C#

    Vorrei creare un eseguibile che funzioni in questo modo:

    All'avvio del programma il software va a recuperare un file di testo licenza.txt ad un indirizzo prefissato e dentro una cartella specifica.

    Se dentro licenza.txt il software trova scritto "ok" il programma continua a funzionare altrimenti si ferma.

    Sono solo agli inizi, mi dareste una mano per favore?

    Ciao e grazie

  2. #2
    Ciao,
    l'operazione è abbastanza semplice, ti lascio un esempio:

    codice:
    using System.Net;
    using System.Windows.Forms;
    
    string url = "http://www.tuosito.com/licenza.txt";
    string result = null;
    
    try
    {
        WebClient client = new WebClient();
        result = client.DownloadString(url);
    }
    catch (Exception ex)
    {
        MessageBox.Show( ex.Message );
    }
    Ciao

  3. #3
    Grazie per il codice, in effetti sembra essere molto semplice. Vorrei soltanto capire come funziona per poter progettare il blocco dell'applicativo nel caso in cui il file .txt non sia presenta sul server. Dunque... vediamo di capire...
    All'inizio si crea una variabile url che contiene l'url del file della licenza, poi si crea una variabile string nulla.
    Sulla guida leggo:
    (Un valore NULL indica che il valore è sconosciuto. Questo tipo di valore è diverso da un valore zero o vuoto. Non esistono due valori Null uguali. I confronti tra due valori Null o tra un valore NULL e qualsiasi altro valore restituiscono UNKNOWN in quanto ogni valore NULL è sconosciuto.)
    Il blocco try salva nella variabile result la variabile url ma solo se esiste una corrispondenza ovvero solo se il file licenza.txt esiste e si trova in quella posizione specifica del dominio (http://www.miosito.com/licenza.txt). Se non esiste corrispondenza allora si genera un'eccezzione e parte il comando catch che visualizza in un messaggio l'eccezzione (manca il file, errore...).
    Sembra tutto abbastanza logico ma se aggiungo:
    codice:
    finally
                {
                    MessageBox.Show("ERRORE DI LICENZA!");
                    this.Close();
                }
    Il programma si chiude anche quando il file di licenza esiste e non si genera eccezzione così ho timore di non aver ben capito cosa fa questo codice qui:
    codice:
    try
                {
                    WebClient client = new WebClient();
                    result = client.DownloadString(url);
                }
    Grazie ancora per l'aiuto

  4. #4
    Ciao,
    se inserisci del codice nel finally questo viene eseguito sempre per ogni exception, quindi non è adatta al codice che hai inserito dentro.

    Puoi mettere un message box nel catch con scritto "Errore di comunicazione con il server".

    Invece se va tutto bene e leggi il file licenza puoi fare quindi il confronto con la chiave: ad esempio

    if (result != "OK")
    {
    MessageBox.Show("ERRORE DI LICENZA!");
    this.Close();
    }

    Ciao

  5. #5
    Praticamente lo strutturerei così:

    codice:
    using System.Net;
    using System.Windows.Forms;
    
    private void chkLicense() 
    {
       string url = "http://www.tuosito.com/licenza.txt";
       string result = null;
    
       try
       {
          webClient client = new WebClient();
          result = client.DownloadString(url);
          if (result != "OK") 
          {
               MessageBox.Show("Errore Licenza!");
               Application.Exit();
          }
       }
       catch (Exception ex)
       {
           MessageBox.Show("Errore di Comunicazione Server");
           Application.Exit();
       }
    }
    al load dell'applicazione richiami per prima cosa chkLicense

    In questo modo se tutto ok il software si avvia in alternativa da un alert e si chiude.
    Ciao

  6. #6
    Come si fa a richiamare chkLicense() all'avvio del software?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.