Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как снять характеристики с компа

Ответить
Настройки темы
C/C++ - Как снять характеристики с компа
lehha


Сообщения: n/a

Профиль | Цитировать


Всем привет!!!
Подскажите как лутше снять основные характеристики железа, а именно
объем HDD, ОЗУ, тип процессора его частоту, MAC адрес, видео карта. К примеру тип проца можно выдрать из реестра по ветке HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\
Информацию о вичестере можа узнать с помощью функций
GetVolumeInformation
GetDiskFreeSpace - или чемто подобным
Одним словом каким образм это можно узнать, как и где лутше это посмотреть в реестре или еще гдето.
Лутше кончечно это сделать с помощью апи функций.
Спаибо за рание.

Отправлено: 11:12, 12-12-2005

 
lehha


Сообщения: n/a

Профиль | Цитировать


Итак покопавшись в MSDN нашел следующее
Computer System Hardware Classes - классы отвечающие за комп-е железо
вот ссылка на их описалово (локальный MSDN 2003) ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/wmisdk/wmi/computer_system_hardware_classes.htm#_hmm_networking_device_classes
а вот ссылка в инете
Спасибо всем если у кого то будут еще предложения пишите.

Отправлено: 11:51, 12-12-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Что-то можно собрать так:
http://msdn.microsoft.com/library/de..._reference.asp

Отправлено: 11:51, 12-12-2005 | #3

lehha


Сообщения: n/a

Профиль | Цитировать


Если кого интересует как работают WMI классы вот пример кода который глядит имена cdrom - ов
Код: Выделить весь код
#include "stdafx.h"
  #define _WIN32_DCOM 
  #include <windows.h>
  #include <vector>
  #include <iostream>
  #include <comdef.h>
  #include <Wbemidl.h> 
  #pragma comment( lib, "Wbemuuid.lib" )
     int _tmain(int argc, _TCHAR* argv[]) 
    {
  	HRESULT hr; 
 	IWbemClassObject * pObject = NULL;	
 	IWbemServices * pService = NULL;	
  	IWbemLocator * pLocator = NULL;	
  	IEnumWbemClassObject * pEnum = NULL;	 
 	CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
         CoInitializeSecurity(NULL, -1, NULL, NULL,   	
	RPC_C_AUTHN_LEVEL_CONNECT,
         RPC_C_IMP_LEVEL_IMPERSONATE,
         NULL, EOAC_NONE, 0); 
         hr = CoCreateInstance( CLSID_WbemLocator, 0, CLSCTX_ALL, 
         IID_IWbemLocator, (void**) &pLocator); 
        if (FAILED(hr)) 
 	{
  	        throw("Лажа не создано");  	
	        ::CoUninitialize();  	
	        return -1;
  	}
  	hr  = pLocator->ConnectServer( _bstr_t(L"root\\cimv2"),NULL,
                      NULL,NULL,NULL,NULL,NULL,&pService);  	
         if (FAILED(hr))
  	{  
		throw("Лажа нет конеткта");		
  		pLocator->Release();  		
                  ::CoUninitialize();  		
                  return -1;
  	}  	
         hr = pService->ExecQuery( _bstr_t(L"WQL"),
                                 _bstr_t(L"SELECT * FROM Win32_CDROMDrive"),   		
                                  WBEM_FLAG_RETURN_IMMEDIATELY |  
                                  WBEM_FLAG_FORWARD_ONLY, 
                                  0, &pEnum );
  	if (FAILED(hr))
  	{  	
	throw("Лажа несработал запрос");  	
	pService->Release();  	
	pLocator->Release();  	
	::CoUninitialize();  	
	return -1;
  	}  
	ULONG uReturn = 0;
  	while (pEnum)
  	{  	
	hr = pEnum->Next(WBEM_INFINITE, 1, &pObject, &uReturn);
  		if(0 == uReturn)
   		{   
			break;  
 		} 
  		VARIANT vtProp;
   		VariantInit(&vtProp);
 		 hr = pObject->Get(L"Name", 0, &vtProp, 0, 0);
   		std::wcout << " Name : " << vtProp.bstrVal << std::endl; 
  		VariantClear(&vtProp);
          	}
	  	pLocator->Release();
  	  	::CoUninitialize();
          	return 0;
  }

Отправлено: 16:19, 14-12-2005 | #4


Аватара для EvgeniyQQQ

Пользователь


Сообщения: 133
Благодарности: 21

Профиль | Сайт | Отправить PM | Цитировать


Добрый, день.

Мне необходимо на С++ с помощью WinApi (желательно без использования WMI и NetBIOS) определить MAC-адрес физических сетевых карт на локальном компьютере. Как определить адреса всех карт - физических и виртуальных, я разобрался. А вот как отфильтровать, не знаю.

Пользуюсь функцией:
Код: Выделить весь код
DWORD GetAdaptersInfo(   __out    PIP_ADAPTER_INFO pAdapterInfo, __inout  PULONG pOutBufLen );
В структуре IP_ADAPTER_INFO, полей указывающих на то, что это физический адаптер или нет- не нашел.

Может кто сталкивался с подобной проблемой, подскажите пожалуйста)))

-------
"Не соглашайся ни на что, кроме совершенства!" - Анонимный автор.
"Совершенство достигается только к моменту полного краха." - К.Н.Паркинсон.


Отправлено: 11:58, 22-10-2009 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как снять характеристики с компа

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как снять скриншот с видео Ser6720 Хочу все знать 28 22-08-2010 23:24
Как снять защиту системы? firedevil Хочу все знать 4 26-01-2010 22:23
Как снять пароль? scraches Программное обеспечение Windows 1 24-05-2008 20:41
Как изменить характеристики видеофайла: яркость, контрастность, цветность mrcnn Видео и аудио: обработка и кодирование 2 31-01-2008 09:00
Как снять защиту с документов SYSANIN Хочу все знать 4 08-06-2005 03:15




 
Переход