Вопрос : Вопрос C# WMI для получать течение после того как я внесен в журнал на потребителе не работает на Windows 7

Hi, Кодий

The следуя за не работает на Windows 7 а работах на Шиндошс Хп. Smogло любое пожалуйста сказать мне будет изменениями, котор мне нужно сделать на Windows 7?

Thanks.
class= " ясное " >
> " codeSnippet " class=
class= " lineNumbers "
class=
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:
система " class= " id= " codeSnippet642192
using;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;

namespace ConsoleApplication1
{
    программа типа
    {
        главным образом static пустое (args шнура [])
        {
            попытка
            {
                Искатель ManagementObjectSearcher = новое ManagementObjectSearcher («\ корня \ CIMV2», «ОТБОРНЫЙ username ОТ Win32_ComputerSystem»);

                foreach (queryObj ManagementObject в искателе. Получите ())
                {
                    Console.WriteLine («UserName: {0}», queryObj [«username»] .ToString ());
                }
            }
            задвижка
            {
                Console.WriteLine («исключение»);
            }
            Console.Read ();
        }
    }
}
class=

Ответ : Вопрос C# WMI для получать течение после того как я внесен в журнал на потребителе не работает на Windows 7

Вы можете попытаться вопрос Win32_LogonSession вместо:

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:
// добавляет справку к System.Management.dll к проекту.

using система;
using System.Collections;
using System.Management; 
using System.Text.RegularExpressions;
using System.Collections.Generic;

namespace CSharp.CodeSnippet.WMI
{

    общественный тип Win32_LogonSession
    {

        общественный шнур AuthenticationPackage;
        общественный шнур LogonID;
        общественное LogonEventType LogonType;
        общественное имя шнура;
        общественное DateTime StartTime;

        общественное enum LogonEventType
        {
            Система = 0,
            Взаимодействующе,
            Сеть,
            Серия,
            Обслуживание,
            Полномочие,
            Откройте,
            NetworkClearText,
            NewCredentials,
            RemoteInteractive,
            CachedInteractive,
            CachedRemoteInteractive,
            CachedUnlock
        }

        общественный статический список GetList ()
        {
            вопрос шнура = «выбирает * от Win32_LogonSession»;

            Искатель ManagementObjectSearcher = новое ManagementObjectSearcher (вопрос);

            ManagementObjectCollection приводит к = искатель. Получите ();

            Перечислите список = новый список (результаты. Отсчет);

            Словарь userTable = GetLoggedOnUsersTable ();

            foreach (ManagementObject logonCurrent в результатах)
            {
                Вход Win32_LogonSession = новое Win32_LogonSession ();

                entry.AuthenticationPackage = (шнур) logonCurrent [«AuthenticationPackage»];
                entry.LogonID = (шнур) logonCurrent [«LogonID»];
                entry.LogonType = (LogonEventType) Convert.ToInt32 (logonCurrent [«LogonType»]);
                entry.StartTime = ConvertFileTime ((шнур) logonCurrent [«StartTime»]);
                если (userTable.ContainsKey, то (entry.LogonID))
                {
                    вход. Имя = (шнур) userTable [entry.LogonID];
                }
                список. Добавьте (вход);
            }
            возвратите список;
        }

        приватный статический словарь GetLoggedOnUsersTable ()
        {
            вопрос шнура = «выбирает * от Win32_LoggedOnUser»;

            Искатель ManagementObjectSearcher = новое ManagementObjectSearcher (вопрос);

            ManagementObjectCollection приводит к = искатель. Получите ();

            Таблица словаря = новый словарь (результаты. Отсчет);

            foreach (currentObject ManagementObject в результатах)
            {
                зашнуруйте учет = GetUser (currentObject (шнура) [«антецедент»]);
                зашнуруйте встречу = GetLogonID (currentObject (шнура) [«иждивенец»]);
                таблица. Добавьте (встреча, учет);
            }
            возвратите таблицу;
        }

        приватный статический шнур GetLogonID (propertyText шнура)
        {
            зашнуруйте картину = «LogonId= \» (? ) \ \ d+ \ "";
            matchID спички = Regex.Match (propertyText, картина);
            если (matchID.Success), то
            {
                возвращенное matchID.Groups [«удостоверение личности»]. Значение;
            }
            еще
            {
                возвращенное "";
            }
        }

        приватный статический шнур GetUser (propertyText шнура)
        {
            зашнуруйте картину = «Domain= \» (? [\ A-Za-z \ d_-] +) \ «|Name= \» (? [\ \ A-Za-z \ d \ s_-] +) \ "";
            домен = "" шнура;
            имя = "" шнура;
            foreach (спичка matchCurrent в Regex.Matches (propertyText, картине))
            {
                fullText шнура = matchCurrent.Groups [0]. Значение;
                если (fullText.StartsWith, то («домен»))
                {
                    домен = matchCurrent.Groups [«домен»]. Значение;
                }
                еще
                {
                    имя = matchCurrent.Groups [«имя»]. Значение;
                }
            }
            если (домен. == 0 длины)
            {
                возвращенное имя;
            }
            еще
            {
                возвращенный домен + «\ \» + имя;
            }
        }

        приватное статическое DateTime ConvertFileTime (время шнура)
        {
            если (время! = null)
            {
                шнур const FILE_TIME_MASK = «yyyyMMddHHmmss»;
                время = время. Подстрока (0, time.IndexOf («."));
                возвращенное DateTime.ParseExact (время, FILE_TIME_MASK, null);
            }
            возвращенное DateTime.MinValue;
        }
    }

}
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us