VB.NET: Comment faire un service (vb.net) ouvrant une application graphique ?
Caacrino
Messages postés8Date d'inscriptionmardi 10 mai 2011StatutMembreDernière intervention18 août 2011
-
29 juil. 2011 à 18:05
Caacrino
Messages postés8Date d'inscriptionmardi 10 mai 2011StatutMembreDernière intervention18 août 2011
-
1 août 2011 à 10:39
Bonjour,
Je recherche le moyen, à l'ouverture d'une session quelconque, d'ouvrir un programme (avec interface graphique) à partir d'un service windows réalisé sous vb.net.
Mon service vérifie que l'application est lancée, et si ce n'est pas le cas, sa tâche est de la lancer (via un timer qui contrôle la présence de l'application dans les processus). Ci-dessous, la portion de code que j'utilise dans mon service pour lancer mon application graphique:
Private Function ProcessExists(ByVal NomProg As String) As Boolean
Dim R As Boolean = False
If Diagnostics.Process.GetProcessesByName(NomProg).Length < 1 Then
R = False
Else
R = True
End If
Return R
End Function
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)
If ProcessExists("BCK") = False Then
Dim p As New Process
p.StartInfo.FileName = Rep & "BCK.exe"
p.StartInfo.
p.StartInfo.WindowStyle = ProcessWindowStyle.Normal
Try
p.Start()
Catch ex As Exception
log(ex.Message)
End Try
End If
End Sub
Mon service à l'air de bien faire son boulot à priori puisque je vois dans la liste des processus qu'il lance bien l'application, mais là ou ça bricole, c'est qu'on ne voit pas l'interface graphique de l'application malgré sa présence dans les processus, ce qui est ennuyeux en soit puisque le but c'est d'afficher mon interface dès qu'une session windows est ouverte (j'essaye de faire une interface pour ordinateur embarqué).
Merci d'avance pour votre aide !
A voir également:
VB.NET: Comment faire un service (vb.net) ouvrant une application graphique ?
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 29 juil. 2011 à 19:45
Bonjour,
As-tu regardé sur quel compte ton processus se lançait ?
Car si il se lance avec un compte System, c'est normal que tu ne le vois pas.
________________________________________________________________________
[list][*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu, pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Bonsoir,
De mémoire, je pense qu'il faut que tu autorises ton service à interagir avec le bureau.
Je ne sais plus vraiment à toi de voir.
Panneau conf/ services/ clic droit sur ton service / propriétés / onglet connexion / cocher la case interagir avec le bureau.
Bonne nuit.
Caacrino
Messages postés8Date d'inscriptionmardi 10 mai 2011StatutMembreDernière intervention18 août 2011 1 août 2011 à 10:39
Bonjour et merci pour vos réponses les amis, malheureusement j'ai déjà essayé de lancer le service avec le compte de la session ouverte lors de mes tests sans résultat, j'ai également autorisé le service à interagir avec le bureau bien avant de poster ma question sur ce forum (suites à mes différentes recherches avec l'ami Google). Bref rien n'y fait, je n'ai toujours pas accès à l'interface graphique de l'application lancée par mon service, ma question reste donc toujours d'actualité...