Modificare Timer inverval a "int64" per una durata di 365 giorni

sabato 26 ottobre 2013 - 12.03
Tag Elenco Tags  VB.NET  |  Visual Studio 2010  |  Visual Studio Express

.net Profilo | Newbie

Salve a tutti, vorrei inserire un timer, che quando l'applicazione viene installata comincia a contare e dopo un anno (31536000000 m.secondi) mi genera l'evento Tick. Ma quando inserisco il metodo mi dice che la firma non è compatibile.
> Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs, ByVal interval As Int64) Handles Timer1.Tick
> Timer1.Interval = 31536000000
Avete qualche suggerimento, grazie.

alx_81 Profilo | Guru

>Salve a tutti,
ciao

>Ma quando inserisco il metodo mi dice che la firma non è compatibile.
Direttamente dalla doc:

"The time, in milliseconds, between Elapsed events. The value must be greater than zero, and less than or equal to Int32.MaxValue. The default is 100 milliseconds."

minore del massimo valore dell'int32, che è 2.147.483.647.
Tu stai cercando di passare 31.536.000.000 che è di gran lunga superiore.

Sinceramente fare un timer per un tick ogni anno non mi sembra una buona pratica.
Quale sarebbe il requisito funzionale? Che ci devi fare? Magari esistono modi più "ortodossi"..

>grazie.
di nulla!
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

.net Profilo | Newbie

Ciao Alx_81 e grazie per avermi risposto.
Ho fatto un'applicazione alla quale voglio introdurle una sorta di licenza anche se è per uso personale, ma vorrei capire come si fa, perciò dovrei far si che quando il programma viene installato per prima volta mi fa partire un timer (che deve conteggiare anche quando il programma è spento) il quale al 11° mese comincia ad avvertirmi ogni giorno con il conteggio rovescio che il programma sta per scadere e al 12 mese se non inserisco il codice di attivazione mi blocca il programma.
Credevo che modificando la proprietà "interval" a int64 avrei aumentato il valore massimo ma non riesco a convertirlo, in più se il timer lo metto in qualsiasi form del programma ogni volta che apro la applicazione mi comincia il conteggio.

In alternativa prottrei creare una sorta di file di registro dove prendere l'informazione e confrontarla per abbilitare o pure no la licenza.

Cosa ne pensi.
Grazie in anticipo.

alx_81 Profilo | Guru

>Credevo che modificando la proprietà "interval" a int64 avrei
>aumentato il valore massimo ma non riesco a convertirlo, in più
>se il timer lo metto in qualsiasi form del programma ogni volta
>che apro la applicazione mi comincia il conteggio.
avevo immaginato che ti servisse per quello.. ma non è proprio possibile superare il massimo valore che ti ho detto nell'altro post.

>Cosa ne pensi.
prova a seguire questo post. Non mi è mai capitato di doverlo fare:
http://www.codeproject.com/Articles/99499/Implementation-of-the-Licensing-System-for-a-Softw
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

.net Profilo | Newbie

Ciao alx, ho guardato il post che mi hai mandato, è perfetto per quanto riguarda la crittografia anche se io già lo avevo sviluppato in un modo molto simile ma un po rudimentale, ma grazie a questo post posso perfezionarlo.
Invece non parla della scadenza della licenza, a tale proposito ho fatto come ti avevo accennato. Ho creato un file "txt" nel quale scrivo delle informazioni che a sua volta il programma va a leggere e confrontare
Grazie mille per il tuo tempo dedicatomi.

alx_81 Profilo | Guru

>Invece non parla della scadenza della licenza, a tale proposito
>ho fatto come ti avevo accennato. Ho creato un file "txt" nel
>quale scrivo delle informazioni che a sua volta il programma
>va a leggere e confrontare
in generale è meglio se fai un servizio che gira allo startup dell'applicazione e poi durante la sua esecuzione. Insomma una sorta di ciclo infinito installato con il prodotto che ogni tot (anche giornalmente se l'app è accesa) va a controllare la validità della licenza.

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

.net Profilo | Newbie

Ti dettaglio come ho fatto:

Quando inserisco la" chiave di licenza" mi crea un file "txt" o anche con una estensione "eee" in un posto remoto nel pc con la data corrente, e mi abilita il programma.
Ogni volta che apro il programma, faccio la differenza tra la data del file "txt" che ho convertito in tipo "date" e la data odierna.
Se il risultato e < a 30 giorni mi comincia a dare un MsgBox con i giorni restanti.
Se invece il risultato e uguale o minore a "0" mi appare un MsgBox " Licenza Scaduta" che confermando mi apre il form dell rinnovo licenza.
E qui si ricomincia, inserendo la nuova "chiave di licenza" genero un nuovo file "txt" con al suo interno la data corrente.
Poi ci sono altri particolari che sto correggendo, ad esempio che il file venga cancellato o che la data del pc venga modificata.

alx_81 Profilo | Guru

>Ti dettaglio come ho fatto:
direi che ci siamo per lo startup.
Ed evitiamo quel timer bruttino
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

.net Profilo | Newbie

ok grazie per l'aiuto
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5