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

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

02.12.2018, 16:19. Показов 4545. Ответов 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
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
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
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 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
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 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
33412 / 21522 / 8236
Регистрация: 22.10.2011
Сообщений: 36,922
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru