Название: Сбор данных о компьютере Отправлено: Stas от Август 08, 2011, 21:13 Здравствуйте!
В общем проблема такая: собрал кое-как ActiveQt, теперь нужно реализовать сбор данных о компьютерах в сети, т.е. оборудование, программы и т.д. На данный момент, хотя бы собрать информацию о локальном компьютере, облазил весь инет информации очень мало, в основном показывается работа с MS Office. Буду благодарен, если кто-нибудь предоставит примеры элементарных действий необходимых для получения информации о компьютере. P.S. пробовал работать с WMI на C#, всё довольно понятно и просто. Название: Re: Сбор данных о компьютере Отправлено: Пантер от Август 08, 2011, 21:22 Какие именно данные тебя интересуют?
Название: Re: Сбор данных о компьютере Отправлено: Stas от Август 08, 2011, 21:33 Тип процессора, размер ОЗУ и ПЗУ, список сетевых адаптеров, видеокарта, список установленных программ, желательно ещё дату установки ОСи, количество выданых синих экранов и т.д.
Впринципе главное понять принцип работы с WMI, а там уже сам разберусь к каким классам обращаться и какую информацию тянуть. Вообще задача такова: есть локалка на предприятии, нужны сделать инвертаризации компьютеров. Название: Re: Сбор данных о компьютере Отправлено: Mr.Woland от Август 11, 2011, 14:43 Вообще задача такова: есть локалка на предприятии, нужны сделать инвертаризации компьютеров. попробуй http://disphelper.sourceforge.net/Название: Re: Сбор данных о компьютере Отправлено: Stas от Август 11, 2011, 19:19 Вообще задача такова: есть локалка на предприятии, нужны сделать инвертаризации компьютеров. попробуй http://disphelper.sourceforge.net/В ходе поисков выходил я на эту библиотеку, но как то не хочется использовать стороннее решение, если можно сделать стандартными средствами Qt. Я нашёл пример как получить информацию о сетевой карте здесь, http://webcache.googleusercontent.com/search?q=cache:http://poofeg.ru/2010/06/wmi-i-qt-problemy-s-ienum/ (http://webcache.googleusercontent.com/search?q=cache:http://poofeg.ru/2010/06/wmi-i-qt-problemy-s-ienum/) Код функции: Код: QAxObject *getWmiInterObj(const QString &name) Внутри этой функция выполняется запрос Код: QString query = QString("SELECT * FROM Win32_NetworkAdapterConfiguration " В случае удачного выполнения она возвращает объект item типа QAxObject, но как извлечь результат запроса из этого объекта я не совсем пойму. Название: Re: Сбор данных о компьютере Отправлено: Mr.Woland от Август 12, 2011, 14:34 В случае удачного выполнения она возвращает объект item типа QAxObject, но как извлечь результат запроса из этого объекта я не совсем пойму. Посмотри мой старый тестовый проект в аттаче.Поможет. В ходе поисков выходил я на эту библиотеку, но как то не хочется использовать стороннее решение, если можно сделать стандартными средствами Qt. У меня была подобная (типа инвентаризация, но только что-бы полный "слепок" системы :) ) задача. Disphelper тупо оказался удобнее и быстрее (до 20 раз) чем ActiveQt.Правда у хелпера свои косяки..... Название: Re: Сбор данных о компьютере Отправлено: Stas от Август 12, 2011, 15:46 Спасибо, буду разбираться!
Ещё вопрос, я же правильно понимаю, что вообще сбор данных можно организовать по сети, в вашем примере собиралась информация на том компьютере где работает прога, но ничего же не мешает получить список компьютеров в домене и потом имена этих компьютеров подставлять сюда: Код: objWMIService = objIWbemLocator->querySubObject("ConnectServer(QString&,QString&)",QString("."),QString("root\\cimv2")); Название: Re: Сбор данных о компьютере Отправлено: Mr.Woland от Август 12, 2011, 16:34 Спасибо, буду разбираться! Пока ещё не за что :) Ещё вопрос, я же правильно понимаю, что вообще сбор данных можно организовать по сети, в вашем примере собиралась информация на том компьютере где работает прога, но ничего же не мешает получить список компьютеров в домене и потом имена этих компьютеров подставлять сюда: нет root - это корень пространства имен WMI.Код: objWMIService = objIWbemLocator->querySubObject("ConnectServer(QString&,QString&)",QString("."),QString("root\\cimv2")); Вообще есть пара поезных утилит http://www.microsoft.com/download/en/details.aspx?id=24045 как для работы, так и для понимания механизма работы и связей WMI . ЗЫ. Хелпер тоже может подкючаться по сети. Тк все работают с COM объектами... Название: Re: Сбор данных о компьютере Отправлено: Stas от Август 12, 2011, 17:54 Цитировать нет root - это корень пространства имен WMI. Вообще есть пара поезных утилит http://www.microsoft.com/download/en/details.aspx?id=24045 как для работы, так и для понимания механизма работы и связей WMI . ЗЫ. Хелпер тоже может подкючаться по сети. Тк все работают с COM объектами... Да, я ошибся, просто меня ввёл в заблуждение след. пример из википедии: Код: [\\ComputerName\NameSpace][:ClassName][.KeyProperty1=Value1][,KeyProperty2=Value2]…] А утилиты эти я уже недавно скачал, но нет локалки под рукой что бы проверить. Название: Re: Сбор данных о компьютере Отправлено: Mr.Woland от Август 12, 2011, 22:38 А утилиты эти я уже недавно скачал, но нет локалки под рукой что бы проверить. Они прекрасно работают на локальной машине.Особенно -Object Browser. Название: Re: Сбор данных о компьютере Отправлено: Stas от Август 13, 2011, 07:49 Я в курсе, что они работают на локальной машине, но для подключения к удалённой машине, на этой самой машине сначала надо установить локальные политики безопасности.
Название: Re: Сбор данных о компьютере Отправлено: Странник от Август 13, 2011, 15:33 Ещё вопрос, я же правильно понимаю, что вообще сбор данных можно организовать по сети, в вашем примере собиралась информация на том компьютере где работает прога, но ничего же не мешает получить список компьютеров в домене и потом имена этих компьютеров подставлять сюда: имя компьютера первым параметром передается. но по сети лучше асинхронно выполнять.Код: objWMIService = objIWbemLocator->querySubObject("ConnectServer(QString&,QString&)",QString("."),QString("root\\cimv2")); |