Domanda

Nel mio programma desktop, voglio verificare che per vedere se l'utente ha impostato il suo orologio indietro.

Per fare ciò, metto a confronto il timestamp di alcuni file del sistema operativo alla data del computer corrente. Se ce ne sono, dopo quello che il computer pensa sia la data corrente, allora deve essere messo il suo orologio indietro.

Per Windows XP, ho utilizzato tali file come:

c:\win386.swp
c:\windows\user.dat
and several others.

Due domande:

  1. E 'questo un modo decente per fare questo, o c'è qualcosa di meglio?

  2. (Supponendo che la risposta a 1 è "decente") Qual 'è qualche buona Windows Vista e Windows 7 file da confrontare con?


Conclusione: Priyank ha detto una cosa ovvia che mi era sfuggito: Piuttosto che usare qualsiasi file di sistema, il modo più semplice e più semplice potrebbe essere quella di utilizzare solo il timestamp del programma stesso. Dopo tutto, la data in cui è stato installato è esattamente la data che si desidera la versione di prova da cui partire.

Come si è visto, le vostre risposte e la mia ricerca di altre questioni relative StackOverflow e articoli citati ha mi ha portato a decidere su uno schema molto più semplice. I miei utenti di prova già per ottenere una chiave per utilizzare il processo. Ho la data registrata incorporato nella chiave. Io davvero non devo controllare per impostare l'orologio indietro. Invece posso solo seee se l'ora corrente è tra la data registrata, e data registrato più n giorni.

Se vogliono andare alla difficoltà di ottenere intorno a tale regime, poi lasciarli. Sono d'accordo che queste persone non avrebbero pagato comunque. Rendere il vostro programma qualcosa di utile che le persone godono e si desidera utilizzare e più pagherà.

È stato utile?

Soluzione

i file di Windows sarà avere sempre data precedente, il migliore è quello di verificare la creazione o data di modifica del programma con la data di sistema. O in qualsiasi momento il vostro programma di smettere di fare in modo di notare il timestamp e confrontarlo con la prossima volta che si avvia il programma, e c'è sempre NTP: http://en.wikipedia.org/wiki/Network_Time_Protocol

Altri suggerimenti

un modo migliore per farlo che IMHO potrebbe essere quella di memorizzare il timestamp corrente nel Registro di sistema la prima volta che il programma viene eseguito e quindi confrontare che con il timestamp corrente sulla prossima corsa e aggiornare il timestamp se tutto è OK.

Questa non è una risposta diretta, proprio per offrire un po 'di opinione e di riferimenti. Troppo lungo per me da aggiungere come commento.

Se lo scopo è quello di creare un software limitata nel tempo per l'uso demo / trial, abbiamo bisogno di trovare un equilibrio tra quanto si va su di attuazione e la tendenza per gli utenti di 'incidere' passarlo.

Non ho spesso dire alla gente, se il software attrae gli hacker, probabilmente è qualcosa di utile / buono. Nessun punto la protezione di un software che nessuno trova utile.

In ogni caso, il discorso filosofico a parte, qui di seguito ci sono un paio buona legge su questo argomento:

Come implementare limitata nel tempo di prova sul Forum di Joel < br> tempo di prova limitata e Windows Certificazione su SO
bisogno di consigli su L'implementazione di un Prova a tempo limitato su SO

Una possibilità sarebbe quella di ottenere la data da un servizio web o un server di tempo. Il problema qui è che questo funziona solo se v'è la connessione internet, quindi questo sarebbe solo un metodo complementare per una più sicura.

di Windows fornisce le API per la notifica del tempo cambia sistema. Un esempio è il controllo ActiveX SYSINFO.OCX disponibile qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top