Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Création d'un service avec Visual Basic 2005 Express

3 réponses
Avatar
Ggr
Bonjour,
Je veux créer una application Windows (avec un Form) qui doit tourner en
mode service système et Systray.
Le modele n'existe pas dans Visual Basic 2005 Express.
Dois je déja créer un projet avec "Application windows" ou "Application
console" ?
Avez vous un exemple de code?

Merci de vos réponses

Jean-Luc

3 réponses

Avatar
Bonjour Jean-Luc,

Je ne peux pas t'aider en ce qui concerne le mode Service.
(à part de mettre le Form en .Visible = False et .ShowInTaskbar = False)

Par contre, pour mettre une application dans Systray, je fais ainsi.

En espérant que cela puisse te servir,
Stéphane.

PS :

Côté concepteur :

- ajout d'un contrôle ContextMenuStrip dans mon Form
Name : ContextMenuStrip_NotifyIcon
Items :
1 ToolStripMenuItem Restaurer (Name : RestaurerToolStripMenuItem)
1 ToolStripSeparator
1 ToolStripMenuItem Quitter (Name : QuitterToolStripMenuItem)

RestaurerToolStripMenuItem.Fonts.Bold : True

- ajout d'un contrôle NotifyIcon dans mon Form
Name : NotifyIcon
Visible : False
Icon : Choisir son icône
Text : Texte à afficher dans le systray si besoin
ContextMenuStrip : ContextMenuStrip_NotifyIcon

Côté code :
Private Sub Form_Main_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Resize

If Me.WindowState = FormWindowState.Minimized Then

Me.NotifyIcon.Visible = True

Me.NotifyIcon.Text = Me.Text 'si besoin

Me.ShowInTaskbar = False

End If

End Sub

Private Sub Form_Main_FormClosed(ByVal sender As Object, ByVal e As
System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

Me.NotifyIcon.Visible = False

'LibSre la m,moire avant de quitter

Me.Dispose(True)

End

End Sub

Private Sub NotifyIcon_MouseDoubleClick(ByVal sender As System.Object, ByVal
e As System.Windows.Forms.MouseEventArgs) Handles
NotifyIcon.MouseDoubleClick

RestoreWindow()

End Sub

Private Sub RestoreWindow()

Me.NotifyIcon.Visible = False

Me.WindowState = FormWindowState.Normal

Me.ShowInTaskbar = True

Me.Activate()

End Sub

Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles QuitterToolStripMenuItem.Click

Me.NotifyIcon.Visible = False

Me.Close()

End Sub

Private Sub RestaurerToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles RestaurerToolStripMenuItem.Click

RestoreWindow()

End Sub



"Ggr" a écrit dans le message de news:
uBv%
Bonjour,
Je veux créer una application Windows (avec un Form) qui doit tourner en
mode service système et Systray.
Le modele n'existe pas dans Visual Basic 2005 Express.
Dois je déja créer un projet avec "Application windows" ou "Application
console" ?
Avez vous un exemple de code?

Merci de vos réponses

Jean-Luc



Avatar
jchtible
Je te conseille de regarder de ce coté ci:

http://www.dotnet-tech.com/tutoriels/service-windows/
http://msdn.microsoft.com/fr-fr/library/system.serviceprocess.servicebase.aspx

Le principe du service est de créer une classe héritant de
System.ServiceProcess.ServiceBase.

Cette classe doit surcharger les méthodes OnStart et OnStop

Voici un petit exemple d'utilisation:

Public Class MainService

Protected Overrides Sub OnStart(ByVal args() As String)
' Ajoutez ici le code pour démarrer votre service. Cette méthode doit
' démarrer votre service.
EventLog.WriteEntry("MonServicePerso", "Le service perso a
démarré.", EventLogEntryType.Information, 15)
End Sub

Protected Overrides Sub OnStop()
' Ajoutez ici le code pour effectuer les destructions nécessaires à
l'arrêt de votre service.
EventLog.WriteEntry("MonServicePerso", "Le service perso a été
arrêté.", EventLogEntryType.Information, 15)
End Sub
End Class

Ensuite le tout est de l'installer au niveau système ... N'hésite pas à
revenir pour plus de détails.



"Stéphane" wrote:

Bonjour Jean-Luc,

Je ne peux pas t'aider en ce qui concerne le mode Service.
(à part de mettre le Form en .Visible = False et .ShowInTaskbar = False)

Par contre, pour mettre une application dans Systray, je fais ainsi.

En espérant que cela puisse te servir,
Stéphane.

PS :

Côté concepteur :

- ajout d'un contrôle ContextMenuStrip dans mon Form
Name : ContextMenuStrip_NotifyIcon
Items :
1 ToolStripMenuItem Restaurer (Name : RestaurerToolStripMenuItem)
1 ToolStripSeparator
1 ToolStripMenuItem Quitter (Name : QuitterToolStripMenuItem)

RestaurerToolStripMenuItem.Fonts.Bold : True

- ajout d'un contrôle NotifyIcon dans mon Form
Name : NotifyIcon
Visible : False
Icon : Choisir son icône
Text : Texte à afficher dans le systray si besoin
ContextMenuStrip : ContextMenuStrip_NotifyIcon

Côté code :
Private Sub Form_Main_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Resize

If Me.WindowState = FormWindowState.Minimized Then

Me.NotifyIcon.Visible = True

Me.NotifyIcon.Text = Me.Text 'si besoin

Me.ShowInTaskbar = False

End If

End Sub

Private Sub Form_Main_FormClosed(ByVal sender As Object, ByVal e As
System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

Me.NotifyIcon.Visible = False

'LibSre la m,moire avant de quitter

Me.Dispose(True)

End

End Sub

Private Sub NotifyIcon_MouseDoubleClick(ByVal sender As System.Object, ByVal
e As System.Windows.Forms.MouseEventArgs) Handles
NotifyIcon.MouseDoubleClick

RestoreWindow()

End Sub

Private Sub RestoreWindow()

Me.NotifyIcon.Visible = False

Me.WindowState = FormWindowState.Normal

Me.ShowInTaskbar = True

Me.Activate()

End Sub

Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles QuitterToolStripMenuItem.Click

Me.NotifyIcon.Visible = False

Me.Close()

End Sub

Private Sub RestaurerToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles RestaurerToolStripMenuItem.Click

RestoreWindow()

End Sub



"Ggr" a écrit dans le message de news:
uBv%
> Bonjour,
> Je veux créer una application Windows (avec un Form) qui doit tourner en
> mode service système et Systray.
> Le modele n'existe pas dans Visual Basic 2005 Express.
> Dois je déja créer un projet avec "Application windows" ou "Application
> console" ?
> Avez vous un exemple de code?
>
> Merci de vos réponses
>
> Jean-Luc
>





Avatar
Ggr
Je vous remercie de vos réponses que je vais essayer de mettre en place.

Jean-Luc


"jchtible" a écrit dans le message de
news:
Je te conseille de regarder de ce coté ci:

http://www.dotnet-tech.com/tutoriels/service-windows/
http://msdn.microsoft.com/fr-fr/library/system.serviceprocess.servicebase.aspx

Le principe du service est de créer une classe héritant de
System.ServiceProcess.ServiceBase.

Cette classe doit surcharger les méthodes OnStart et OnStop

Voici un petit exemple d'utilisation:

Public Class MainService

Protected Overrides Sub OnStart(ByVal args() As String)
' Ajoutez ici le code pour démarrer votre service. Cette méthode
doit
' démarrer votre service.
EventLog.WriteEntry("MonServicePerso", "Le service perso a
démarré.", EventLogEntryType.Information, 15)
End Sub

Protected Overrides Sub OnStop()
' Ajoutez ici le code pour effectuer les destructions nécessaires à
l'arrêt de votre service.
EventLog.WriteEntry("MonServicePerso", "Le service perso a été
arrêté.", EventLogEntryType.Information, 15)
End Sub
End Class

Ensuite le tout est de l'installer au niveau système ... N'hésite pas à
revenir pour plus de détails.



"Stéphane" wrote:

Bonjour Jean-Luc,

Je ne peux pas t'aider en ce qui concerne le mode Service.
(à part de mettre le Form en .Visible = False et .ShowInTaskbar = False)

Par contre, pour mettre une application dans Systray, je fais ainsi.

En espérant que cela puisse te servir,
Stéphane.

PS :

Côté concepteur :

- ajout d'un contrôle ContextMenuStrip dans mon Form
Name : ContextMenuStrip_NotifyIcon
Items :
1 ToolStripMenuItem Restaurer (Name : RestaurerToolStripMenuItem)
1 ToolStripSeparator
1 ToolStripMenuItem Quitter (Name : QuitterToolStripMenuItem)

RestaurerToolStripMenuItem.Fonts.Bold : True

- ajout d'un contrôle NotifyIcon dans mon Form
Name : NotifyIcon
Visible : False
Icon : Choisir son icône
Text : Texte à afficher dans le systray si besoin
ContextMenuStrip : ContextMenuStrip_NotifyIcon

Côté code :
Private Sub Form_Main_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Resize

If Me.WindowState = FormWindowState.Minimized Then

Me.NotifyIcon.Visible = True

Me.NotifyIcon.Text = Me.Text 'si besoin

Me.ShowInTaskbar = False

End If

End Sub

Private Sub Form_Main_FormClosed(ByVal sender As Object, ByVal e As
System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

Me.NotifyIcon.Visible = False

'LibSre la m,moire avant de quitter

Me.Dispose(True)

End

End Sub

Private Sub NotifyIcon_MouseDoubleClick(ByVal sender As System.Object,
ByVal
e As System.Windows.Forms.MouseEventArgs) Handles
NotifyIcon.MouseDoubleClick

RestoreWindow()

End Sub

Private Sub RestoreWindow()

Me.NotifyIcon.Visible = False

Me.WindowState = FormWindowState.Normal

Me.ShowInTaskbar = True

Me.Activate()

End Sub

Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles QuitterToolStripMenuItem.Click

Me.NotifyIcon.Visible = False

Me.Close()

End Sub

Private Sub RestaurerToolStripMenuItem_Click(ByVal sender As
System.Object,
ByVal e As System.EventArgs) Handles RestaurerToolStripMenuItem.Click

RestoreWindow()

End Sub



"Ggr" a écrit dans le message de news:
uBv%
> Bonjour,
> Je veux créer una application Windows (avec un Form) qui doit tourner
> en
> mode service système et Systray.
> Le modele n'existe pas dans Visual Basic 2005 Express.
> Dois je déja créer un projet avec "Application windows" ou "Application
> console" ?
> Avez vous un exemple de code?
>
> Merci de vos réponses
>
> Jean-Luc
>