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 :

Récuperer l'utilisateur associé à un processus


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 42
    Points : 36
    Points
    36
    Par défaut Récuperer l'utilisateur associé à un processus
    Bonjour,
    Je ne trouve pas comment récuperer le nom du user associé à un prcessus exemple pour notepad.
    Je cherche à savoir qui a lance un process, ici par exemple pour notepad.

    Par avance merci pour votre réponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Traiement_Tremine = True
            Dim Prc() As Process = Process.GetProcesses() 
            For x As Integer = 0 To UBound(Prc) 
                Zone = Prc(x).ProcessName.ToUpper(New System.Globalization.CultureInfo("fr-FR", False))
                If Zone = "NOTEPAD" Then
                    ' Comment  récuperer le user associé au lancement de notepad
                End If
            Next

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Points : 359
    Points
    359
    Par défaut
    Bonjour,
    Déjà si tu codes en vb.net (la présente section) UBound(x) est incorrect, c'est du vb6
    En vb.net se traduit par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For x As Integer = 0 To Prc.GetUpperBound(0) - 1
    D'ailleurs j'aurais utilisé un 'For Each' à la place...

    D'autre part, je ne vois pas ce que tu veux faire concrètement, mais j'ai vu que tu peux utiliser 'pinvoke', explications sur cette page: http://www.pinvoke.net/default.aspx/...cessToken.html

    Ce qui devrait donner quelque chose comme:
    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
    23
    24
    25
    26
    27
    28
    29
    30
     
    Public Class Form1
        Declare Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Integer) As Integer
        Declare Function OpenProcessToken Lib "advapi32.dll" ( _
        ByVal ProcessHandle As IntPtr, _
        ByVal DesiredAccess As Integer, _
        ByRef TokenHandle As IntPtr) As Boolean
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim ListeOk As String = ""
            Dim ListeKo As String = ""
            For Each p As Process In Process.GetProcesses
                If p.ProcessName.Length > 0 Then
                    Try
                        Dim hToken As IntPtr
                        If OpenProcessToken(p.Handle, Security.Principal.TokenAccessLevels.Query, hToken) Then
                            Using wi As New Security.Principal.WindowsIdentity(hToken)
                                ListeOk &= p.ProcessName.ToString & ": " & wi.Name & Environment.NewLine
                            End Using
                            CloseHandle(hToken)
                        End If
                    Catch ex As Exception
                        ListeKo &= p.ProcessName.ToString & ": " & ex.Message & Environment.NewLine
                    End Try
                End If
            Next
            MessageBox.Show(ListeOk)
            MessageBox.Show(ListeKo)
        End Sub
    End Class
    Par nature les mots, ils sont flous, c'est une fois alignés qu'ils se précisent.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 42
    Points : 36
    Points
    36
    Par défaut Récuperer l'utilisateur associé à un processus
    Bonjour et merci pour votre réponse.
    En fait je voudrais dans l’exemple donné récupérer le nom de l’utilisateur associé au process notepad.
    Nom affiché dans le gestionnaire des tâches windows.

    Nom de l'image PID Nom d'utilisateur
    notepade 1352 Pierre

  4. #4
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Points : 359
    Points
    359
    Par défaut
    Hé bien,
    Dans l'exemple que je t'ai fait, dans la première liste qu'il t'affiche tu as 'notepad: [nom du PC] "\" [nom de l'utilisateur]'
    Si tu veux le nom, le PID et l'utilisateur tu peux remplacer la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeOk &= p.ProcessName.ToString & ": " & wi.Name & Environment.NewLine
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeOk &= p.ProcessName.ToString & ": " & p.Id.ToString & " - " & wi.Name.Split("\"c)(1) & Environment.NewLine
    Par nature les mots, ils sont flous, c'est une fois alignés qu'ils se précisent.

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

Discussions similaires

  1. Problème de connexion.. utilisateur associé
    Par poussinphp dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/09/2008, 17h11
  2. Réponses: 3
    Dernier message: 04/01/2008, 17h57
  3. [FireBird] récuperer l'utilisateur et la date
    Par aityahia dans le forum SQL
    Réponses: 6
    Dernier message: 28/05/2007, 15h36
  4. Réponses: 1
    Dernier message: 22/04/2006, 23h06
  5. Réponses: 4
    Dernier message: 22/04/2006, 09h25

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