Question : La question de C# WMI pour obtenir l'utilisateur ouvert une session courant ne travaille pas à Windows 7

Bonjour, le code suivant du

The ne travaille pas sur Windows 7 mais des travaux sur Windows Xp. Est-ce que n'importe qui pourrait svp m'indiquer ce qui sont les modifications que je dois apporter pour Windows 7 ?

Thanks.
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 :
système >using " de l'id= " codeSnippet642192 de
        
class= de

Réponse : La question de C# WMI pour obtenir l'utilisateur ouvert une session courant ne travaille pas à Windows 7

Vous pouvez essayer une question de Win32_LogonSession à la place :

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 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
// ajoutent une référence à System.Management.dll au projet.

using le système ;
using System.Collections ;
using System.Management ; 
using System.Text.RegularExpressions ;
using System.Collections.Generic ;

namespace CSharp.CodeSnippet.WMI
{

    classe publique Win32_LogonSession
    {

        corde publique AuthenticationPackage ;
        corde publique LogonID ;
        LogonEventType public LogonType ;
        nom public de corde ;
        StartTime date-heure public ;

        enum public LogonEventType
        {
            Système = 0,
            Interactif,
            Réseau,
            Groupe,
            Service,
            Procuration,
            Ouvrir,
            NetworkClearText,
            NewCredentials,
            RemoteInteractive,
            CachedInteractive,
            CachedRemoteInteractive,
            CachedUnlock
        }

        liste statique publique GetList ()
        {
            la question de corde = « choisissent * à partir de Win32_LogonSession » ;

            Chercheur de ManagementObjectSearcher = nouveau ManagementObjectSearcher (question) ;

            ManagementObjectCollection résulte = chercheur. Obtenir () ;

            Énumérer la liste = nouvelle liste (résultats. Compte) ;

            Dictionnaire userTable = GetLoggedOnUsersTable () ;

            foreach (ManagementObject logonCurrent dans les résultats)
            {
                Entrée de Win32_LogonSession = nouveau Win32_LogonSession () ;

                entry.AuthenticationPackage = (corde) logonCurrent [« AuthenticationPackage »] ;
                entry.LogonID = (corde) logonCurrent [« LogonID »] ;
                entry.LogonType = (LogonEventType) Convert.ToInt32 (logonCurrent [« LogonType »]) ;
                entry.StartTime = ConvertFileTime ((corde) logonCurrent [« StartTime »]) ;
                si (userTable.ContainsKey (entry.LogonID))
                {
                    entrée. Nom = (corde) userTable [entry.LogonID] ;
                }
                liste. Ajouter (entrée) ;
            }
            renvoyer la liste ;
        }

        dictionnaire statique privé GetLoggedOnUsersTable ()
        {
            la question de corde = « choisissent * à partir de Win32_LoggedOnUser » ;

            Chercheur de ManagementObjectSearcher = nouveau ManagementObjectSearcher (question) ;

            ManagementObjectCollection résulte = chercheur. Obtenir () ;

            Table de dictionnaire = nouveau dictionnaire (résultats. Compte) ;

            foreach (currentObject de ManagementObject dans les résultats)
            {
                ficeler le compte = le GetUser (currentObject (de corde) [« antécédent »]) ;
                ficeler la session = le GetLogonID (currentObject (de corde) [« personne à charge »]) ;
                table. Ajouter (session, compte) ;
            }
            renvoyer la table ;
        }

        corde statique privée GetLogonID (propertyText de corde)
        {
            ficeler le modèle = « LogonId= \ » (? ) \ \ d+ \ "" ;
            matchID d'allumette = Regex.Match (propertyText, modèle) ;
            si (matchID.Success)
            {
                matchID.Groups de retour [« identification »]. Valeur ;
            }
            autrement
            {
                "" de retour ;
            }
        }

        corde statique privée GetUser (propertyText de corde)
        {
            ficeler le modèle = « Domain= \ » (? [\ D'A-Za-z \ d_-] +) \ « |Name= \ » (? [\ \ D'A-Za-z \ d \ s_-] +) \ "" ;
            domaine = "" de corde ;
            nom = "" de corde ;
            foreach (allumette matchCurrent dans Regex.Matches (propertyText, modèle))
            {
                texte intégral de corde = matchCurrent.Groups [0]. Valeur ;
                si (fullText.StartsWith (« domaine »))
                {
                    domaine = matchCurrent.Groups [« domaine »]. Valeur ;
                }
                autrement
                {
                    nom = matchCurrent.Groups [« nom »]. Valeur ;
                }
            }
            si (domaine. == 0 de longueur)
            {
                nom de retour ;
            }
            autrement
            {
                domaine de retour + « \ \ » + nom ;
            }
        }

        ConvertFileTime date-heure statique privé (temps de corde)
        {
            si (temps ! = nulle)
            {
                corde de const FILE_TIME_MASK = « yyyyMMddHHmmss » ;
                temps = temps. Sous-chaîne (0, time.IndexOf (« .")) ;
                DateTime.ParseExact de retour (temps, FILE_TIME_MASK, nulle) ;
            }
            DateTime.MinValue de retour ;
        }
    }

}
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us