Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionImports System.Management Public Class Form1 Dim cpt As Integer Public Enum LoggedInUserReturn Successful = 0 AccessDenied = 2 InsufficientPrivilege = 3 UnknownFailure = 8 PathNotFound = 9 InvalidParameter = 21 End Enum Public Shared Function GetLoggedInUser(ByVal Application As String, ByVal User As String) As Boolean Dim allUserProcess As New ArrayList Dim mc As New ManagementClass("Win32_Process") Dim moc As ManagementObjectCollection = mc.GetInstances For Each mo As ManagementObject In moc Dim argList As String() = {String.Empty} Dim objReturn As Object = mo.InvokeMethod("GetOwner", argList) Dim returnValue As LoggedInUserReturn = Convert.ToInt32(objReturn) If returnValue = LoggedInUserReturn.Successful Then If Application.ToLower mo.GetPropertyValue("Name").ToString.ToLower And User argList(0).ToString Then Return True End If End If Next Return False End Function 'Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) ' Timer1.Enabled = True ' txtEtat.Text = "Etat : Start" ' cpt = 0 ' txtCpt.Text = "Compteur : " & cpt 'End Sub 'Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) ' Timer1.Enabled = False ' txtEtat.Text = "Etat : Stop" ' cpt = 0 'txtCpt.Text = "Compteur : " & cpt 'End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 'me permettant de contrôler si un proccess est lancé ou non, s'il ne l'est pas, je ferme un autre 'proccess, j 'attends quelques secondes et je lance un programme. Ce code fonctionne parfaitement mais mon souci est que 'dans mon cas il y a deux proccess de même nom avec la seule différence du nom d'utilisateur, un est en "SYSTEM" et 'l'autre en "technique.hotel". Donc j'aimerai intégrer à mon code une fonction qui contrôle si le proccess "Falcon" de 'l'utilisateur "technique.hotel" est lancé ou pas. ' Dim oVérificationProcess = "Falcon.exe" 'Le nom du proccess à contrôler Dim oProcessKill = "C:\SevenLine\Client\Kill_EibTask\_EibusDrv_TaskKill.bat" 'Le programme à lancer pour tuer la tâche Dim oAutreProgramme1 = "C:\Program Files\Fichiers communs\EIBA sc\Falcon\Falcon.exe" 'Premier programme à lancer après la tempo Dim oAutreProgramme2 = "C:\SevenLine\Client\EibusDrv.exe" 'Second programme à lancer après la tempo Dim oGetNameProcess = "technique.hotel" 'Le profil utilisateur Dim p As New Process If GetLoggedInUser(oVérificationProcess, "technique.hotel") = False Then cpt = cpt + 1 p.StartInfo.FileName = oProcessKill 'Définition du style de la fenêtre (maximisé, minimisé, normal, caché) p.StartInfo.WindowStyle = ProcessWindowStyle.Normal 'Démarrage du process p.Start() Threading.Thread.Sleep(5000) 'Chemin de l'application p.StartInfo.FileName = oAutreProgramme1 'Définition du style de la fenêtre (maximisé, minimisé, normal, caché) p.StartInfo.WindowStyle = ProcessWindowStyle.Normal 'Démarrage du process p.Start() Threading.Thread.Sleep(5000) p.StartInfo.FileName = oAutreProgramme2 'Définition du style de la fenêtre (maximisé, minimisé, normal, caché) p.StartInfo.WindowStyle = ProcessWindowStyle.Normal 'Démarrage du process p.Start() Else cpt = cpt End If txtCpt.Text = "Compteur : " & cpt End Sub Private Sub StartToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartToolStripMenuItem.Click Timer1.Enabled = True txtEtat.Text = "Etat : Start" End Sub Private Sub StopToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StopToolStripMenuItem.Click Timer1.Enabled = False txtEtat.Text = "Etat : Stop" cpt = 0 txtCpt.Text = "Compteur : " & cpt End Sub Private Sub RéduireToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RéduireToolStripMenuItem.Click Me.WindowState = FormWindowState.Minimized End Sub End Class