Lancement timer [Résolu]

Signaler
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
-
Messages postés
329
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
10 mai 2014
-
bonjour,

je cherche a realiser 1 programme qui envoit une MsgBox(1) toutes les secondes.

voici le prg que j'ai realiser a cet effet (mais qui ne fonctionne pas) :

Module ProcGles
    Sub Main()
        Dim LancerVeille As New Veilleuse()
    End Sub
End Module


Public Class Veilleuse
    Private WithEvents cpte As New Timer
    Public Sub New()
        cpte.Interval = 1000
        cpte.Start()
    End Sub
    Private Sub cpte_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles cpte.Tick
        MsgBox(1)
    End Sub
End Class

via le debugger je peux constater que le prg passe bien dans le constructeur de la classe Veilleuse mais la procedure evenementielle cpte_Tick() n'est jamais declenchee.

pourriez-vous me dire comment corriger mon code pour que ca fonctionne ?

merci a vous,

alonsyl

10 réponses

Messages postés
329
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
10 mai 2014
4
D'après ce que j'en ai compris (mais c'est pas sur)

le sub main en vb quand tu l'execute il effectuer les différentes actions que tu lui demande et après il se ferme, donc il faudrait faire une boucle pour pouvoir le garder actif tous le temps un peu comme un batch.

bonne prog

@+
LIM
Messages postés
329
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
10 mai 2014
4
Pour le systray il faut que tu regarde notifyicon (je ne sais plus du tout comment çà marche)
j'essayerai de refaire un prog avec ce week-end pour retrouver comment çà marche

pour le démarrer le programme au lancement de windows il faut créer une clé de registre
pour cela j'avais une coche dans un coin du programme qui créer ou supprimer la clé de regsitre

Private

Sub ckAutoStart_CheckedChanged(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles ckAutoStart.CheckedChanged

Try

If ckAutoStart.Checked =
True
ThenRunOnStart(

"NOM DE TA CLE", Application.StartupPath &
"\Tonexe.exe")

ElseDelRunOnStart(

"NOM DE TA CLE")

End
If

Catch ex
As ExceptionMessageBox.Show(

"Error !",
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

End
Try

End
Sub

'Création d'une clé de regsitre
Public

Sub RunOnStart(
ByVal Name
As
String,
ByVal File
As
String)

Try

Dim Key
As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
True)Key.SetValue(Name, File)

Key.Close()

Key =

Nothing

Catch ex
As ExceptionMessageBox.Show(

"Error !",
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

 

End
Try

End
Sub

Public
Sub DelRunOnStart(
ByVal Name
As
String)

Try

Dim Key
As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
True)Key.DeleteValue(

Name)Key.Close()

Key =

Nothing

Catch ex
As ExceptionMessageBox.Show(

"Error !",
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

 

End
Try

End
Sub

      

@+
LIM
Messages postés
329
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
10 mai 2014
4
Salut

   Pour masquer ta form met   Me.Visible=False et avec .ShowInTaskBar c'est suffisant

@+
LIM
Messages postés
329
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
10 mai 2014
4
Salut,

   C'est une application console que tu as fait ?

   Car avec une applciation Forms (une fenêtre, un bouton) et la déclaration de ta classe çà marche.

@+
LIM
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
10
salut,

en fait, je cherche a mettre au point un systeme d'alertes pour me notifier des evenements.


je m'explique, je cherche a realiser une appli qui se lance au demarrage de windows et qui va interroger (en mode deconnecte) 1 BDD qui contient les evenements marquants de ma journées (anniversaires, rdv, ...).
si un evenement arrive dans les prochaines x minutes, une boite de dialoge me previent pour me rappeler la chose (d'ou la necessite d'un timer pour verifier l'eligibilite de neaux evenements).


tout cela pourrait etre realiser en mode console mais j'aiemrais que la BDD soit administrable via un petit icone a cote de l'horloge windows (en bas a droite).
en faisant 1 clique droit sur cet icone j'aurais differents menus me permettant d'arreter l'appli, d'envoyer des Form pour ajouter ou modifier des evenements, ...


ainsi, au demarrage, il n'y aurait pas de fenetres a cette appli (ce serait programme resident). cependant, si l'utilisateur decide d'enregistrer ou de modifier un evenement une interface dediee lui permettra de realiser l'ensemble de ces operations.

merci a toi !
Messages postés
329
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
10 mai 2014
4
Re

   Je ne vois ou est le problème, ce que je ferais moi c'est une application avec une Form, cette form te lance le timer et  d'autre chose si necessaire, tu peux lancer l'appli au démarrage de windows et tu la cache dans en icone dans le systray

   j'ai eu fait une appli qui faisait tout çà (sauf le timer) elle géré des évènnements windows

@+
LIM
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
10
ok pour ta reponse. merci a toi !

mais sinon, par simple curiosite intellectuectuelle pourrais-tu me dire pourquoi comment faire fonctionner ce prg :
Module ProcGles
    Sub Main()
        Dim LancerVeille As New Veilleuse()
    End Sub
End Module
Public Class Veilleuse
    Private WithEvents cpte As New Timer
    Public Sub New()
        cpte.Interval = 1000
        cpte.Start()
    End Sub
    Private Sub cpte_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles cpte.Tick
        MsgBox(1)
    End Sub
End Class

merci,

alonsyl
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
10
OK OK OK !!!
je vois maintenant pourquoi j'ai obligation d'utiliser 1 Form.

grand merci a toi pour m'avoir accorde de ton temps,

alonsyl
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
10
desole de te deranger a neau mais pourrais-tu m'indiquer comment realiser l'operation suivante :
"tu peux lancer l'appli au démarrage de windows et tu la cache dans en icone dans le systray"

merci a toi,

alonsyl
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
10
salut,

pour masquer ma form, j'utilise les commande suivantes :
Me

.ClientSize =
New System.Drawing.Size(0, 0) '=> ma form fait 0 de haut et 0 de large

Me

.ShowInTaskbar =
False '=> elle n'apparait pas dans la berre des windows du menu "demarrer"

qu'en penses-tu ? est-ce suffisant ?

merci a toi !

alonsyl