IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Msgbox service timer [Débutant]


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 12
    Par défaut Msgbox service timer
    Bonjour
    Je voudrais faire un service qui affiche un msgbox tous les jours à 17h30.

    Pourriez vous m'aider svp ? Une piste ?
    Merci

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    un service ne doit pas interagir avec une session windows
    tu peux par contre faire une application et utiliser les tâches planifiées de windows
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 151
    Par défaut
    Salut,

    C'est une fonctionnalité que j'avais développé pour une application avec des jours d'éxécution en plus, voici un exemple (simplifié de ce que j'avais fait) de création de Timer (pour l'heure du goûter , ou fin de journée):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim t As New System.Windows.Forms.Timer         'Crée un timer (peut etre un autre Timer peut être utilisé)
        t.Interval = CalculeIntervalle()
        t.Start()                                       'Démarrage
        AddHandler t.Tick, AddressOf CalculeIntervalle  'ReCalcule la prochaine execution (86 400 000 ms normalement)
        AddHandler t.Tick, AddressOf TonAction          'Action à effectuer à ton Heure
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub TonAction()
        MsgBox("Coucou")
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    ''' <summary>
    ''' Calcule l'intervalle avant ta prochaine exécution.
    ''' </summary>
    ''' <returns>Nombre de milliseconds avant ton heure programmée</returns>
    ''' <remarks></remarks>
    Public Function CalculeIntervalle() As Integer
        Dim heureProgrammation As Integer = 17
        Dim minuteProgrammation As Integer = 30
     
        'Heure actuelle
        Dim maintenant As Date = Date.Now
        'Heure de programmation pour aujourd'hui
        Dim aujourdhui As New Date(maintenant.Year, maintenant.Month, maintenant.Day, heureProgrammation, minuteProgrammation, 0)
        'Heure de programmation pour demain
        Dim demain As Date = DateAdd(DateInterval.Day, 1, aujourdhui)
     
        Dim inter As Integer = DateDiff(DateInterval.Second, maintenant, aujourdhui)
        If (inter <= 0) Then 'Heure passée, prochaine exécution demain
            inter = DateDiff(DateInterval.Second, maintenant, demain)
        End If
        Return inter * 1000 'Conversion Seconds -> MilliSeconds
    End Function
    EDIT : oops j'avais zappé la partie "Service"

    @+
    Mat

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 12
    Par défaut
    merci matt
    pourriez vous ajouter la partie service svp

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 151
    Par défaut
    Citation Envoyé par Joeinlakesh Voir le message
    merci matt
    pourriez vous ajouter la partie service svp
    Je suis désolé, mais je ne connais pas du tout le dev coté service.

    Il suffit de faire juste le contenu de ce que j'ai appelé TonAction

    et tu planifies ta tache via une commande shell
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell("AT 17:30 /INTERACTIVE /EVERY:l,ma,me,j,v,s,d """ & My.Application.Info.DirectoryPath & "\" & My.Application.Info.AssemblyName" & ".exe"" auto")
    Source : http://www.developpez.net/forums/d63...s/#post3749019

    Ou plus récent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start("SCHTASKS /Create /SC DAILY /TN nomTache /TR 'C:\\ConsoleApp.exe' /ST 16:43")
    Ceci marche dans mon shell, mais depuis l'appli, j'ai quelque soucis. A creuser.
    tape SCHTASKS /? dans ton invite de commande pour plus d'options.

    @+
    Mat

  6. #6
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut
    Citation Envoyé par Joeinlakesh Voir le message
    Bonjour
    Je voudrais faire un service qui affiche un msgbox tous les jours à 17h30.

    Pourriez vous m'aider svp ? Une piste ?
    Merci

    Bonjour,

    Tu peux faire ça avec une form invisible sans inscription en barre de tâche, au choix du type d'applicatin lors de la création, à mettre au lancement dans le dossier démarrer (start...), à moins que tu ne veuilles l'appeler ?
    Mais ça prend du temps processeur, le mieux c'est le réveil à côté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Option Explicit On
    Public Class Form1
     
      Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Interval = 60000
        Timer1.Enabled = True
      End Sub
     
      Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If Now.Hour <> 17 Then Exit Sub
        If Now.Minute <> 30 Then Exit Sub
        MsgBox("Il est 17h30")
        'Timer1.Enabled = False
      End Sub
     
    End Class

  7. #7
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Le plus simple et le plus adapte selon tes desirs, c'est que tu crees juste un petit form a ton gout et signalant qu'il est l'heure et que tu crées manuellement la planification tous les jours a xxhxx
    Comme ca c'est le systeme qui gere la comparaison et ca ne prends rien en memoire, ni d'avoir un exe en arriere plan qui est juste là pour rien faire 99.99% du temps

    Autre solution avec tjrs la planification et sans developpement, tu crees juste une planification un simple beep dans l'invite de commande. Ca mange pas de pain et ca prends 20s

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. service timer se bloque
    Par espoireproxy dans le forum SharePoint
    Réponses: 4
    Dernier message: 17/01/2011, 12h18
  2. projet integration service Timer
    Par kevinFphcare dans le forum Outils
    Réponses: 3
    Dernier message: 06/01/2011, 15h50
  3. [VB.NET][WindowsForm][Service Win.]msgbox
    Par jj del amorozo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/11/2006, 08h23
  4. [C# 2.0, Service]Problème service et Timer
    Par boleduch dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/04/2006, 15h00
  5. [C#][service windows] problème de débutant avec 1 timer
    Par Nycos62 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/10/2005, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo