Ciao,
il mio consiglio è quello di scrivere (o copiare automaticamente) un piccolo client sul pc ospite che si occupi di rilevare la presenza della tua scheda e di un determinato file crittografato in essa residente contenente una chiave di riconoscimento (o meglio rilevare il seriale di produzione della card).
A questo punto, se il controllo va a buon fine, vai a scrivere nel registro (o in qualsiasi file di tua creazione) tre chiavi cifrate:
la prima rappresenta la data e l'ora di avvio, la seconda la data e l'ora di blocco e la terza specifica la possibilità di ripristinare l'utilizzo del software.
In alternativa crei il file (o la chiave di registro) e specifichi la sola data (e ora) di partenza.
Se quest'ultimo già esiste il software non si avvia, se, invece, non esiste lo crei.
Inserisci nel software un modulo che esegua il controllo sull'esistenza del dato e che, tramite un timer o un thread esegua un controllo ogni tot (anche due ore) per verificare il tempo trascorso.
A questo punto puoi assegnare il risultato del calcolo ad una variabile per verificare se il suo valore è maggiore o uguale al tempo da te prefissato.
Per il calcolo puoi utilizzare il seguente codice:
Date.Parse(StartDate).Subtract(Date.Parse(StopDate)).ToString()
01000100 01100101 01110110 00101101 00110000 00110001