С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 2
Регистрация: 24.09.2015
Сообщений: 122
Builder 6

Определение характеристик ПК

02.12.2018, 16:19. Показов 4487. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для компьютера на определить:
• тип компьютера;
• конфигурацию оборудования;
• объем оперативной памяти;
• наличие и объем расширенной памяти;
• наличие дополнительных ПЗУ;
• версию ОС.
Без понятия как это делать, преподаватель дал пример, простите за украинские комментарии:
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
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <conio.h>
#include <dos.h>
#include <stdio.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
void main()
{
 unsigned char type_PC, /* Тип комп'ютера              */
               a,b;     /* Перемінні для визначення  */
                        /* характеристик пам'яті ПЭВМ   */
 unsigned int  konf_b;  /* Байт конфігурації з BІOS   */
 char *type[]={"AT","PCjr","XT","ІBM PC","unknown"};
 unsigned char typ1A[]={0,1,2,4,5,6,7,8,10,11,12,0xff};
 char *types1A[]={"німа дисплею" ,"MDA, моно" ,"CGA, цв.",
                  "EGA, цв.","EGA, моно" ,"PGA, цв.",
                  "VGA, моно, анал.","VGA, кіл., анал.",
                  "MCGA, кіл., цифр. ","MCGA, моно, анал."
                  "MCGA, кіл., анал." , "невідомий тип",
                  "непередбачений код"};
 unsigned int j;       /* Допоміжна перемінна */
 unsigned int seg;     /* Сегмент ПЗУ                */
 unsigned int mark=0xAA55;   /* Маркер ПЗУ           */
 unsigned char bufVGA[64];       /* Буфер даних VGA */
 union REGS rr;
 struct SREGS sr;
 textbackground(0);
 clrscr();
 textattr(0x0a);
 cprintf("Лабораторна робота N5");
 cprintf("\n перевірка складу устаткування");
 /* Визначення типу комп'ютера */
 type_PC=peekb(0x000,0xFFFE);
 if( (type_PC-=0xFC)>4)
        type_PC=4;
 textattr(0x0b);
 cprintf("\n тип комп'ютера: ");
 textattr(0x0f);
 cprintf("%s\n\r",type[type_PC]);
 /* Конфігурація*/
 konf_b=peek(0x40,0x10); /* Читання байта устаткування */
                         /* з пам'яті BІOS            */
 textattr(0x0b);
 cprintf("Конфігурація:\n\r");
 /* Кількість дисководів */
 textattr(0x0e);
 cprintf("   Дисководів ГМД:           ");
 textattr(0x0f);
 іf (konf_b&0x0001)
        cprіntf("%d\n\r",((konf_b&0x00C0)>>6)+1);
 else
   cprіntf("немає\n\r");
 textattr(0x0e);
 cprіntf("   Математич. співпроцесор:   ");
 textattr(0x0f);
 іf (konf_b&0x0002)
   cprіntf(\n\r");
 else
   cprintf("немає\n\r");
 textattr(0x0e);
 cprintf("   Тип дисплейного адаптера: ");
 textattr(0x0f);
 /* Визначення активного адаптера */
 /* Припустимо наявність VGA */
 rr.h.ah=0x1a;
 rr.h.al=0;
 іnt86(0x10,&rr,&rr);
 іf (rr.h.al==0x1a)  /* Підтримується функція 1Ah */
 {                  /* переривання 10h             */
  for (j=0;j<12;j++)
   іf (rr.h.bl==typ1A[j])
    break;
  cprіntf("%s",types1A[j]);
  іf (j>0 && j<12)
  {
   rr.h.ah=0x1b;
   rr.x.bx=0;
   sr.es=FP_SEG (bufVGA);
   rr.x.dі=FP_OFF (bufVGA);   іnt86x(0x10,&rr,&rr,&sr);
   cprіntf(", %d Кбайт\n\r",((іnt)bufVGA[49]+1)*64);
  }
  else
        cprіntf("\n\r");
 }
 else
 {
  /* Припустимо наявність EGA */
  rr.h.ah=0x12;
  rr.h.bl=0x10;
  іnt86(0x10,&rr,&rr);
  іf(rr.h.bl!=0x10) /* Підтримується функція 12h */
  {                 /* переривання 10h */
   cprіntf("EGA");
   іf(rr.h.bh)
    cprіntf(" моно");
   else
    cprіntf(" кіл.");
   cprіntf(", %d Кбайт\n\r",((іnt)rr.h.bl+1)*64);
  }
  else
  {
   /* CGA чи MDA */
   swіtch(konf_b&0x0030)
   {
    case 0:    cprіntf("EGA/VGA\n\r");break;
    case 0x10: cprіntf("CGA,40\n\r");break;
    case 0x20: cprіntf("CGA,80\n\r");break;
    case 0x30: cprіntf("MDA");break;
   }
  }
 }
 /* Блоки ОЗУ на системній платі */
 textattr(0x0e);
 cprіntf("\n\r   Первинний блок пам'яті:    ");
 textattr(0x0f);
 swіtch (konf_b&0x000C)
 {
  case 0:cprіntf("16 Кбайт\n\r");break;
  case 4:cprіntf("32 Кбайт\n\r");break;
  case 8:cprіntf("48 Кбайт\n\r");break;
  case 12:cprіntf("64 Кбайт чи більше\n\r");break;
 }
 /* Кількість послідовних портів RS-232 */
 textattr(0x0e);
 cprіntf("   Портів RS232:             ");
 textattr(0x0f);
 cprіntf("%d\n\r",(konf_b&0x0E00)>>9);
 /* Наявність джойстика */
 textattr(0x0e);
 cprіntf("   Джойстик:                 ");
 textattr(0x0f);
 іf(konf_b&0x1000 )  cprіntf(\n\r");
 else
  cprіntf("немає\n\r");
 /* Кількість параллельних принтерів */
 textattr(0x0e);
 cprіntf("   Принтерів:                ");
 textattr(0x0f);
 cprіntf("%d\n\n\r",(konf_b&0x000)>>14);
 /* Обсяг оперативної пам'яті */
 textattr(0x0e);
 cprіntf("Обсяг оперативної пам'яті: ");
 textattr(0x0f);
 cprіntf("%d Кбайт\n\r",peek(0x40,0x13));
 textattr(0x0e);
 /* Наявність і обсяг extended-пам'яті */
 outportb(0x70,0x17);
 a=іnport(0x71);
 outportb(0x70,0x18);
 b=іnport(0x71);
 cprіntf("Обсяг extended-пам'яті:    ");
 textattr(0x0f);
 cprіntf("%d  Кбайт\n\n\r",(b<<8)|a);
 /* Наявність додаткових ПЗУ */
 for( seg=0x000;seg<0xFFB0;seg+=0x40)
 /* Перегляд пам'яті від C000:0 із кроком 2 ДО */
  іf(peek(seg,0)==mark)   /* Маркер знайдений */
  {
   textattr(0x0a);
   cprіntf("Адреса ПЗУ =");
   textattr(0x0f);
   cprіntf(" %04x",seg);
   textattr(0x0a);
   cprіntf(". Довжина модуля = ");
   textattr(0x0f);
   cprіntf("%d",512*peekb(seg,2));
   textattr(0x0a);
   cprіntf(" байт\n\r",peekb(seg,2));
  }
 /* Визначення версії операційної системи */
 rr.h.ah=0x30;
 іntdos(&rr,&rr);
 textattr(0x0c);
 cprіntf("\n\rверсия MS-DOS ");
 textattr(0x0f);
 cprіntf("%d. %d\n\r",rr.h.al,rr.h.ah);
 textattr(0x0a);
 gotoxy(30,24);
 cprіntf("Натисніть будь-яку клавішу");
 textattr(0x07);
 getch();
 clrscr();
 
}
//---------------------------------------------------------------------------
Выбивает кучи ошибок.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2018, 16:19
Ответы с готовыми решениями:

Определение числовых характеристик
Ребята, нужна помощь. Пожалуйста &gt;.&lt;. Нужно автоматизировать определение числовых характеристик и построение имперического...

Определение характеристик компьютера
Как программно определить характеристики компьютера? Какие нужны для этого библиотеки? Небходимо определить: ОС информация о...

Определение характеристик массива
ссылка удалена Вот фото с заданием, помогите пожалуйста а то я только начал изучать паскаль

15
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,012
02.12.2018, 17:03
Диспетчер устройств

Добавлено через 22 минуты
Только работает код по ссылке не очень хорошо (возможно, в виду его давности):
Кликните здесь для просмотра всего текста
Дата: 2.12.2018

Частота процессора: 2403.073458 МГц

[Информация об оперативной памяти]
Физической памяти всего: 2047 Мб
Физической памяти доступно: 1147 Мб
Виртуальной памяти всего: 2047 Мб
Виртуальной памяти доступно: 1964 Мб

[Информация о жестких дисках]
Объем диска С: 2 байт / 1 Мб
Свободно на диске С: 1 байт / 1 Мб
Объем диска D: 2 байт / 2 Мб
Свободно на диске D: 5 байт / 4 Мб
Объем диска E: 4 байт / 3 Мб
Свободно на диске E: 4 байт / 4 Мб

[Информация о видеокарте]
A
Объем видеопамяти: 128 Мб
\

[Информация о мониторе]
Текущее разрешение экрана по горизонтали: 1920
Текущее разрешение экрана по вертикали: 1080
Палитра (бит): 32
Частота развертки: 60 Герц
Размер экрана монитора по горизонтали: 677 мм
Размер экрана монитора по вертикали: 381 мм
Размер монитора по диагонали: 30 Дюймов

[Список установленных устройств]
1 @0925@
2 R
3 I
4 H
5 "5@<0;L=0O
6 U
7 N
8 !B0=40@B=K9
9 !B0=40@B=K9
10 >38G5A:89
11 !B0=40@B=K9
12 8A?5BG5@
13 W
14 M
15 R
16 0=0;
17 I
18 #=825@A0;L=0O
19 m
20 8A:>2K9
21 H
22 #=825@A0;L=K9
23 k
24 R
25 U
26 A
27 0=0;
28 @>3@0<<8@C5<K9
29 >=B@>;;5@
30 !B0=40@B=K9
31 K
32 !B0=40@B=K9
33 U
34 !B0=40@B=K9
35 L
36 !8AB5<=K9
37 S
38 A
39 !8AB5<=K9
40 40?B5@
41 U
42 M
43 S
44 H
45 N
46 L
47 A
48 KA>:>B>G=K9
49 W
50 K
51 H
52 A
53 S
54 !B0=40@B=K9
55 !B0=40@B=K9
56 @0925@
57 !B0=40@B=K9
58 !B0=40@B=K9
59 H
60 >=B@>;;5@
61 $8:A8@>20==0O
62 8=8?>@B
63 5@5G8A;8B5;L
64 R
65 N
66 H
67 k
68 I
69 8=8?>@B
70 A
71 n
72 !B0=40@B=K9
73 !B0=40@B=K9
74 K
75 !B0=40@B=K9
76 !B0=40@B=K9
77 !B0=40@B=K9
78 >@B
79 8=8?>@B
80 a
81 >A;54>20B5;L=K9
82 k
83 8A:
84 8=8?>@B
85 A
86 @0925@
87 K
88 @0925@
89 N
90 B
91 !B0=40@B=K9
92 8=8?>@B
93 !B0=40@B=K9
94 !B0=40@B=K9
95 AB@>5==K9
96 !B0=40@B=K9
97 G
98 N
99 K
100 I
101 #=825@A0;L=K9
102 T
103 B
104 H
105 8=8?>@B
106 (8=0
107 L
108 g
109 @0925@
110 C
111 8=8-
112 !B0=40@B=K9
113 n
114 !B0=40@B=K9
115 N
116 !B0=40@B=K9
117 !B0=40@B=K9
118 A
119 H
120 !8AB5<=0O
121 R
122 P
123 #=825@A0;L=K9
124 8A?5BG5@
125 H
126 V
127 @0925@
128 1I89
129 #=825@A0;L=K9
130 5AC@AK
131 I
132 P
133 U
134 @0925@
135 !>AB02=>5
136 >=B@>;;5@
137 5AC@AK
138 @0925@
139 H
140 n
141 !B0=40@B=K9
142 (8=0
143 K
144 !B0=40@B=K9
145 !B0=40@B=K9
146 P
147 5AC@AK
148 D
149 ;0280BC@0
150 8A?5BG5@
151 C
152 @8D<5B8G5A:89
153 !>AB02=>5
154 #=825@A0;L=K9
155 5@5G8A;8B5;L
156 8A:>2K9
157 H
158 #=825@A0;L=0O
159 "><0
160 >=B@>;;5@
161 5=B8;OB>@
162 K
163 !B0=40@B=K9
164 ;0=8@>2I8:
165 !B0=40@B=K9
166 !B0=40@B=K9
167 >@=52>9
168 V
169 U
170 k
171 U
172 @0925@
173 I
174 =>?:0
175 U
176 @0925@
177 >@=52>9
178 D
179 #=825@A0;L=0O
180 K
181 #=825@A0;L=0O
182 K
0
0 / 0 / 2
Регистрация: 24.09.2015
Сообщений: 122
02.12.2018, 17:30  [ТС]
Спасибо, помогло.
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 11
18.11.2021, 20:33
КАК ТЕБЕ ЕТО МОГЛО ПОМОЧЬ???????
0
 Аватар для qppq
145 / 89 / 23
Регистрация: 31.08.2016
Сообщений: 780
Записей в блоге: 2
19.11.2021, 14:58
Цитата Сообщение от __A_l_e_x__ Посмотреть сообщение
КАК ТЕБЕ ЕТО МОГЛО ПОМОЧЬ???????
просто от сердца отлегло, и на душе стало лехче)
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 11
19.11.2021, 21:54
АХАХАХАА орнул,
ибо никак иначе ему это не могло помочь
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,356
Записей в блоге: 3
20.11.2021, 07:40
Цитата Сообщение от __A_l_e_x__ Посмотреть сообщение
ибо никак иначе ему это не могло помочь
Не надо судить по себе. В указанной ссылке в посте #4 был явно указан путь получения данной информации - WMI. Последующий поиск по ключевым словам "C++ Builder" && "WMI" дадут очень много пищи для размышления и изучения и, в итоге, приведут к результату. Но, понятное дело, тем, кому хочется халявы во всем - этот путь "ничем не может помочь"...
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 11
20.11.2021, 17:57
Цитата Сообщение от D1973 Посмотреть сообщение
Не надо судить по себе. В указанной ссылке в посте #4 был явно указан путь получения данной информации - WMI. Последующий поиск по ключевым словам "C++ Builder" && "WMI" дадут очень много пищи для размышления и изучения и, в итоге, приведут к результату. Но, понятное дело, тем, кому хочется халявы во всем - этот путь "ничем не может помочь"...
я не искал халяву
мне нужно было найти направление решения поставленной задачи (мне надо клавишу отключить)
я как полный ноль не смог даже скомпилировать код приведенный в примере
поэтому сейчас перечитав много разных статей начал изучать хуки, как возможный вариант решения
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 11
21.11.2021, 18:47
Цитата Сообщение от D1973 Посмотреть сообщение
Не надо судить по себе. В указанной ссылке в посте #4 был явно указан путь получения данной информации - WMI. Последующий поиск по ключевым словам "C++ Builder" && "WMI" дадут очень много пищи для размышления и изучения и, в итоге, приведут к результату. Но, понятное дело, тем, кому хочется халявы во всем - этот путь "ничем не может помочь"...
и кста подскажи, смогу ли я с помощью WinAPI выключить клавишу, глобально во всех окнах одновременно?
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,356
Записей в блоге: 3
22.11.2021, 06:29
А как понять:
Цитата Сообщение от __A_l_e_x__ Посмотреть сообщение
во всех окнах одновременно?
Во всех формах своей программы? Или вообще в любом окне ОС?
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 11
23.11.2021, 15:55
Цитата Сообщение от D1973 Посмотреть сообщение
А как понять:

Во всех формах своей программы? Или вообще в любом окне ОС?
Во всех окнах ОС
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
23.11.2021, 16:26
Цитата Сообщение от __A_l_e_x__ Посмотреть сообщение
начал изучать хуки, как возможный вариант решения
На мой взгляд - не "возможный", а единственный (можно еще, конечно, развинтить клавиатуру - а там полтора десятка винтов - и попробовать заклеить клавишу скочем; это будет быстрее, чем изучить хуки...)
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 11
23.11.2021, 17:14
Цитата Сообщение от nick42 Посмотреть сообщение
На мой взгляд - не "возможный", а единственный (можно еще, конечно, развинтить клавиатуру - а там полтора десятка винтов - и попробовать заклеить клавишу скочем; это будет быстрее, чем изучить хуки...)
Подскажешь какую-нибудь литературу для изучения хуков,
или, тупо Google в помощь?

Клавиатура еще, пусть поживет
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
23.11.2021, 17:34
Лично у меня по части "хуков" даже боксерского опыта нет. Но знаю, что на форуме немало знающих, которые на этом собаку съели. Будем надеяться, что подтянутся постепенно... .
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33369 / 21495 / 8234
Регистрация: 22.10.2011
Сообщений: 36,892
Записей в блоге: 12
23.11.2021, 19:23
Цитата Сообщение от __A_l_e_x__ Посмотреть сообщение
смогу ли я с помощью WinAPI выключить клавишу, глобально
Смотря какую клавишу. Есть такие, которые никакими хуками не управляются. Есть такие - которые можно отключить...
0
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 11
23.11.2021, 22:49
Цитата Сообщение от volvo Посмотреть сообщение
Смотря какую клавишу. Есть такие, которые никакими хуками не управляются. Есть такие - которые можно отключить...
С помощью горячих клавиш Left Ctrl+Left Alt+F4 заблокировать клавишу 4,
здесь точно проблем не должно быть , главное понять, что такое хуки и как они работают
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.11.2021, 22:49
Помогаю со студенческими работами здесь

Определение характеристик одномерного массива
Ввести последовательность в одномерный массив и найти начальные и конечные номера подпоследовательностей элементов, сумма кото*рых равна...

Определение характеристик компьютера (windows 8 x64)
Здравствуйте, нужно узнать определенные характеристики компьютера(программно): конфигурация(наличие дисководов, принтеров, порты...),...

Определение основных характеристик устройств накопителей (язык Си)
Прошу помочь с заданием. Разработать программу для определения основных характеристик устройств накопителей под Windows NT. Должна...

Логнормальное распределение. Определение числовых характеристик для набора экспериментальных данных.
Здравствуйте, подскажите пожалуйста как найти дисперсию,сигму мат ожидание(хотя бы что то одно чтобы найти по нему остальные) из...

План видов характеристик в качестве характеристики значения плана видов характеристик
всем привет. я вроде как чета понимаю в 1с и казалось бы херли там план видов характеристик - все просто. и вот возник вопрос: План...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru