Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 18
1

Утилита сканирования аппаратной части ПК в Windows

07.12.2015, 12:51. Показов 1087. Ответов 4
Метки нет (Все метки)

Нужна прога по указанной теме (желательно с формой). Шарил в интернете, но всё немного отдаленно от идеала. Выручайте!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2015, 12:51
Ответы с готовыми решениями:

Обновление аппаратной части нетбука, возможно?
Доброго времени. Вообщем, ситуация весьма забавная с моим clevo m1115. Купил его очень давно и...

Резервирование аппаратной части сервера для малого оффиса
Здраствуйте. В Малом офисе имеется ввиду обычно под сервер используется просто хороший комп....

Не запускается утилита control center3: пытаюсь открыть интерфейс сканирования и вижу только белое окно
На моем компьютере стоит windows 10, пользуюсь мфу Brothers, для сканирования использую utilit...

Что можно почитать об информатике, истории компьютера, работе аппаратной части в целом?
всем привет, извиняюсь заранее, что не в особо подходящем разделе. недавно начал изучать...

4
Практикантроп
4679 / 2599 / 496
Регистрация: 23.09.2011
Сообщений: 5,579
07.12.2015, 13:43 2
Ну, за идеалом - это с парнями из Lavalys Inc лучше списаться. А по простому - получить список установленных устройств, например...
C++
1
2
3
4
5
6
7
8
9
  HDEVINFO hDevInfo;
  SP_DEVINFO_DATA DeviceInfoData;
  DWORD i;
 
           // все устройства
  hDevInfo = SetupDiGetClassDevs(NULL,
     0, // Enumerator
     0,
     DIGCF_PRESENT | DIGCF_ALLCLASSES);
и затем в цикле его распечатать; хотя бы в Memo.
0
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 18
07.12.2015, 14:22  [ТС] 3
Хм, я думаю, Lavalays не особо будут раскрывать свои тайны.
А что конкретно выводить в Print'е? [ Memo1->Lines->Add(Print()) ]
0
Практикантроп
4679 / 2599 / 496
Регистрация: 23.09.2011
Сообщений: 5,579
07.12.2015, 15:08 4
Лучший ответ Сообщение было отмечено Midnight Kid как решение

Решение

.. да там много всего...
Кликните здесь для просмотра всего текста
C++
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
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HDEVINFO hDevInfo;
  SP_DEVINFO_DATA DeviceInfoData;
  DWORD i;
 
           // все устройства
  hDevInfo = SetupDiGetClassDevs(NULL,
     0, // Enumerator
     0,
     DIGCF_PRESENT | DIGCF_ALLCLASSES);
 
  if (hDevInfo == INVALID_HANDLE_VALUE) // если список не удалось получить
  {
     Memo1->Lines->Add("ERORR! Не удалось получить список.");
  }
      
           // Перечисление всех устройств в наборе
  DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
  for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,
          &DeviceInfoData);i++)
  {
     DWORD DataT;
     LPTSTR buffer = NULL;
     DWORD buffersize = 0;
 
     while (!SetupDiGetDeviceRegistryProperty(
              hDevInfo,
              &DeviceInfoData,
              SPDRP_DEVICEDESC,
              &DataT,
              (PBYTE)buffer,
              buffersize,
              &buffersize))
           {
              if (GetLastError() == 
                  ERROR_INSUFFICIENT_BUFFER)
              {
                  // изменение размера буфера
                  if (buffer) LocalFree(buffer);
                  // удвоение размера буфера в случае нехватки для Win2K MBCS systems per KB 888609
                  buffer = (char*)LocalAlloc(LPTR,buffersize * 2);
              }
              else
              {
                  Memo1->Lines->Add("ERORR! Не удалось получить список");
                  break;
              }
           }
 
          Memo1->Lines->Add(IntToStr(i+1)+" "+(String)buffer); //  вывод списка в файл
 
          if (buffer) LocalFree(buffer);
  }
      
      
  if ( GetLastError()!=NO_ERROR &&
           GetLastError()!=ERROR_NO_MORE_ITEMS )
  {
     Memo1->Lines->Add("ERORR! Не удалось получить список");
  }
        //  очистка памяти от списка
  SetupDiDestroyDeviceInfoList(hDevInfo);
       
}
//---------------------------------------------------------------------------


Добавлено через 20 минут
П.С. #include <setupapi.h> не забудь добавить.
2
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 18
07.12.2015, 17:51  [ТС] 5
Вот это тема! Все работает, благодарыч!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2015, 17:51

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Программирование аппаратной кнопки "Назад" в windows phone 8.1
Здравствуйте, собственно проблема в том что не могу запрограммировать аппаратную кнопку &quot;Назад&quot; в...

Ремонт Windows XP, после сканирования Avast!
Ребят помогите плиз, может кто то сталкивался, с такой проблемой, когда перезагружаю комп, все...

После установки антивируса и сканирования, не грузится Windows 7
Всем привет!Очень нужна ваша помощь!Ситуация такая.Решил установить новый антивирус,установил...

Системная утилита для ОС Windows
Здравствуйте, прошу прощения за наглость, но никто не может помочь написать системную утилиту...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.