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

    [VB.NET 20008] Controllo su data in form_load

    Ciao.
    devo realizzare un controllo che mi consenta una volta al giorno di effettuare delle operazioni sul mio programmino.

    il programma che realizzo sarà sempre aperto.

    la domanda è: come posso fare a far si che ogni giorno ad una specifica ora faccia un controllo ed esegua delle operazioni ?

    ho pensato a questa soluzione, ma forse ce ne sono di migliori.

    nel form load faccio scrivere un file sul disco contenente il giorno il mese e l'anno
    tipo... 20080616

    domani effettuo un controllo fra quello scritto nel file e oggi quindi:

    20080617 > 20080616 e così faccio eseguire delle operazioni.
    questo controllo lo inserisco in un timer che ogni ora provvede.

    la vedo una soluzione poco "stabile"

    cosa mi consigliate per sistemare la cosa un po' meglio ?

    la mia necessità che che ogni giorno (oppure ogni ora o anche ogni 2.. insomma ogni TOT TEMPO) esegua un controllo e a seconda di cosa restituisce il controllo fa o mendo determinate operazioni.

    grazie
    -------------------------
    ..::`DrUmM\n0`::..
    www.jonathandomenici.com

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    be usa un timer che abbia un tick lungo quanto un giorno in millisecondi.. nell'evento metti l'azione

  3. #3
    è fattibile ????
    non è rischioso....
    -------------------------
    ..::`DrUmM\n0`::..
    www.jonathandomenici.com

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    e perchè dovrebbe? alla partenza del programma gli fai rilevare l'ora di sistema, fai una comparazione con l'ora che ti serve e fai partire un timer con il risultato, al suo primo tick gli fai eseguire l'oparazione (ma anche no) e fai partire il timer "giornaliero".. in questo modo hai un software che è sempre allineato con l'ora di sistema e esegue operazioni giornaliere sempre alla stessa ora..

  5. #5
    io la farei molto più semplice...

    mi creerei un'impostazione DataFaiQualcosa nelle impostazioni del programma di tipo Date e scriverei questo:

    codice:
    Public Class Form1
        Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Timer1.Stop()
            If VerificaData("ss") = True Then 'verifico se la data archiviata è diversa da quella di oggi
                My.Settings.DataFaiQualcosa = Now
                My.Settings.Save()
                'Fai Qualcosa
            Else
                'Fai Qualcos'altro
            End If
            Timer1.Start()
        End Sub
    
        Function VerificaData(ByVal Controllo As String) As Boolean
            Dim DtDiff As TimeSpan
            If My.Settings.DataFaiQualcosa = #12:00:00 AM# Then Return True
            DtDiff = Now.Subtract(My.Settings.DataFaiQualcosa)
            Select Case Controllo.ToLower
                Case "gg" 'giorni
                    If DtDiff.Days > 0 Then Return True
                Case "hh" 'ore
                    If DtDiff.Hours > 0 Then Return True
                Case "mm" 'minuti
                    If DtDiff.Minutes > 0 Then Return True
                Case "ss" 'secondi
                    If DtDiff.Seconds > 0 Then Return True
            End Select
            Return False
        End Function
    
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Timer1.Interval = 5000
            Timer1.Start()
        End Sub
    End Class
    così eviti di scrivere file inutili su disco..

    provalo...
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

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.