Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
9 / 9 / 1
Регистрация: 22.12.2012
Сообщений: 505
1

Определить тип микропроцессора, тип ЭВМ и исправен ли аккумулятор на материнке

01.09.2014, 20:22. Показов 2508. Ответов 13
Метки нет (Все метки)

Можно ли это сделать в С# ?
Если да то как, если нет, то можно ли в С\С++ ?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.09.2014, 20:22
Ответы с готовыми решениями:

опрделть тип ЭВМ и ее системных ресурсов:тип и количество дисководов, видеоадаптера, монитора, обьем ОП, версию ОС
Добрый день!!! Не подскажете ,пожалуйста, где можно найти программу, сделаную на асемблере, которая...

Реализовать внешнюю функцию с именем make _ тип (), где тип — тип реализуемой структуры
Реализовать внешнюю функцию с именем make _ тип (), где тип — тип реализуемой структуры. Функция...

Как определить тип переменной, ссылающейся на определённый класс? Нужен именно тип, а не ссылка на обьект!
interface HowDefineMyType { void info(); } class A implements HowDefineMyType { ...

почему $_FILES не всегда определяет тип файла? каким образом можно определить тип в 100% случаях?
почему $_FILES не всегда определяет тип файла? каким образом можно определить тип в 100% случаях?

13
Злой няш
1949 / 1384 / 508
Регистрация: 05.04.2010
Сообщений: 2,627
01.09.2014, 21:22 2
Лучший ответ Сообщение было отмечено Ev_Hyper как решение

Решение

- Некоторые данные можно получить из SystemInformation;
- Некоторые из реестра;
- Некоторые из счетчиков.
А вообще надо смотреть в сторону WMI, к примеру:
C#
1
2
3
4
5
RegistryKey processorName = Registry.LocalMachine.OpenSubKey(@"Hardware\Description\System\CentralProcessor\0", RegistryKeyPermissionCheck.ReadSubTree);
if (processorName != null && processorName.GetValue("ProcessorNameString") != null)
{
    Console.WriteLine(processorName.GetValue("ProcessorNameString"));
}
Цитата Сообщение от qwertun Посмотреть сообщение
тип ЭВМ
Что это такое вообще? Бог с тем, что у аккумулятора есть имя - его никто не называет как аккумулятор на материнской плате.
2
64 / 64 / 16
Регистрация: 07.04.2014
Сообщений: 332
02.09.2014, 09:03 3
тип ЭВМ - смело пишите PC
0
9 / 9 / 1
Регистрация: 22.12.2012
Сообщений: 505
02.09.2014, 22:38  [ТС] 4
Цитата Сообщение от I2um1 Посмотреть сообщение
Что это такое вообще? Бог с тем, что у аккумулятора есть имя - его никто не называет как аккумулятор на материнской плате.
Оказываеться в методических указаниях к лабораторным работам (год выпуска 1993) называют)))

Добавлено через 3 минуты
В методе написано что по адресу 0xf000fffe находиться байт в котором указан какой-то код, который в свою очередь обозначает тип микропроцессора.
Я пробовал прочитать, но чтение из защищенной области памяти невозможно)

Добавлено через 4 минуты
А что вобще за тип ЭВМ??? Какой может быть тип компа? В 1993 наврятли были ноуты, что-бы был тип настольный ПК или ноут, если это вобще тип)
0
Злой няш
1949 / 1384 / 508
Регистрация: 05.04.2010
Сообщений: 2,627
03.09.2014, 11:17 5
Цитата Сообщение от qwertun Посмотреть сообщение
В методе написано что по адресу 0xf000fffe находиться байт в котором указан какой-то код, который в свою очередь обозначает тип микропроцессора.
Возможно в MS-DOS и можно было так получить тип микропроцессора, но современный маздай этого не позволит.
Тип микропроцессора можно получить например так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int _tmain(int argc, _TCHAR* argv[])
{
    int cpuInfo[4] = { 0 };
    char cpuType[0x40] = { 0 };
    for (int i = 0x80000002, offset = 0; i <= 0x80000004; ++i, offset += 16)
    {
        __cpuid(cpuInfo, i);
        memcpy(cpuType + offset, cpuInfo, sizeof(cpuInfo));
    }
    printf("CPU Type: %s\n", cpuType);
    return 0;
}
Для работы этого кода нужна библиотека intrin.h. А вообще лучше прочитать современную литературу по осям, а ту методу нафиг выкинуть.

Цитата Сообщение от qwertun Посмотреть сообщение
А что вобще за тип ЭВМ???
Александр Фролов, Григорий Фролов
Том 2, книга 1, М.: Диалог-МИФИ, 1992.

ПЗУ BIOS содержит по адресу FFFF:FFFE байт, значение которого можно использовать для идентификации типа компьютера:
FFоригинальный IBM PC;
FEXT, Portable PC;
FDPCjr;
FCAT;
FBXT с памятью 640 К на материнской плате;
FAPS/2 модель 25 или 30;
F9Convertible PC;
F8PS/2 модели 55SX, 70, 80;
9ACompaq XT, Compaq Plus;
30Sperry PC;
2DCompaq PC, Compaq Deskpro
0
177 / 177 / 50
Регистрация: 06.01.2013
Сообщений: 392
03.09.2014, 11:32 6
Цитата Сообщение от I2um1 Посмотреть сообщение
Александр Фролов, Григорий Фролов
Том 2, книга 1, М.: Диалог-МИФИ, 1992.

Не по теме:

Думаю с того времени много чего изменилось, книжке то уже 22 года, а это огого...

0
9 / 9 / 1
Регистрация: 22.12.2012
Сообщений: 505
03.09.2014, 19:49  [ТС] 7
Цитата Сообщение от I2um1 Посмотреть сообщение
MS-DOS
Кстати про дос. Как там кодить вобще? Это ж одна большая консоль.
0
Злой няш
1949 / 1384 / 508
Регистрация: 05.04.2010
Сообщений: 2,627
03.09.2014, 21:06 8
qwertun, эм~, что? Это вообще-то полноценная ОС. Ну~, думай так дальше, мне все равно.
0
9 / 9 / 1
Регистрация: 22.12.2012
Сообщений: 505
04.09.2014, 17:00  [ТС] 9
Цитата Сообщение от I2um1 Посмотреть сообщение
Это вообще-то полноценная ОС
ну я знаю что это полноценная ос! просто в винде я в студии код написал, тыкнул мышкой, прожка собралась и запустилась! А в досе как?
0
Злой няш
1949 / 1384 / 508
Регистрация: 05.04.2010
Сообщений: 2,627
04.09.2014, 18:41 10
Цитата Сообщение от qwertun Посмотреть сообщение
А в досе как?
Я его себе как-то так представлял, только черно-белый:
Определить тип микропроцессора, тип ЭВМ и исправен ли аккумулятор на материнке

А вообще все равно что использовать под MS-DOS: будь-то Norton Commander, Volkov Commander, что-нибудь еще. Конечно, для него канонично использование DOS Navigator.
Т.е. это как современный Linux плюс какой-нибудь LXDE, Unity, Gnome, EDE, KDE, Amiwm...
0
64 / 64 / 16
Регистрация: 07.04.2014
Сообщений: 332
05.09.2014, 09:05 11
Цитата Сообщение от qwertun Посмотреть сообщение
Это ж одна большая консоль.
ну уж нет. это норм ос, одна из самых популярных на то время. к ней же как надстройка оконного интерфейса шла win 95.
0
1055 / 862 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
05.09.2014, 12:10 12
fidgi, win 95 это уже полноценная ОС. Надстройками были win 1.x 2.x и 3.x
0
9 / 9 / 1
Регистрация: 22.12.2012
Сообщений: 505
13.09.2014, 17:03  [ТС] 13
Установил Борланд Си вбил код
C
1
2
3
4
char far * pb;
char b;
pb = (char far *)0xF000FFFE;
b = *pb;
(far - заморочка борланда, нафиг нада - не ясно)
В ответ получил n и всё

Добавлено через 2 минуты
Цитата Сообщение от I2um1 Посмотреть сообщение
Тип микропроцессора можно получить например так:
Код C++
int _tmain(int argc, _TCHAR* argv[])
{
int cpuInfo[4] = { 0 };
char cpuType[0x40] = { 0 };
for (int i = 0x80000002, offset = 0; i <= 0x80000004; ++i, offset += 16)
{
__cpuid(cpuInfo, i);
memcpy(cpuType + offset, cpuInfo, sizeof(cpuInfo));
}
printf("CPU Type: %s\n", cpuType);
return 0;
}
Круто! Спс! Получил! А чо с типом ПК и батарейкой на мамке?
0
Злой няш
1949 / 1384 / 508
Регистрация: 05.04.2010
Сообщений: 2,627
13.09.2014, 21:22 14
qwertun, может наконец WMI почитаешь?
Win32_SystemEnclosure class
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
public enum ChassisTypes
{
    Other = 1,
    Unknown,
    Desktop,
    LowProfileDesktop,
    PizzaBox,
    MiniTower,
    Tower,
    Portable,
    Laptop,
    Notebook,
    Handheld,
    DockingStation,
    AllInOne,
    SubNotebook,
    SpaceSaving,
    LunchBox,
    MainSystemChassis,
    ExpansionChassis,
    SubChassis,
    BusExpansionChassis,
    PeripheralChassis,
    StorageChassis,
    RackMountChassis,
    SealedCasePC
}
 
private static void Main()
{
    var systemEnclosures = new ManagementClass("Win32_SystemEnclosure");
    ChassisTypes[] types =
        (from ManagementObject obj in systemEnclosures.GetInstances()
         from type in ((ushort[])(obj["ChassisTypes"])).Where(type => type > 0 && type < 25)
         select (ChassisTypes)type).ToArray();
 
    Console.WriteLine("Computer type: {0}", types.Length > 0 ? types[0] : ChassisTypes.Unknown);
}
Дальше сам. И да, выкинь уже наконец свою методу.

Цитата Сообщение от Kastaneda Посмотреть сообщение
Far - дальний указатель (указатель на ячейку памяти в другом сегменте), near соответственно ближний. Современные ОС используют сегментно-страничную организацию памяти, так что теперь это не актуально (ну почти, правильней сказать не актуально для прикладного программиста)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2014, 21:22

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

Создать классы, спецификации которых приведены ниже. Определить конструктор и методы get Тип(), get Тип(), show Информ()
Реализовать класс в консольном приложении. Определить дополнительно методы в классе, создающем...

Определить структурный тип содержащий следующую информацию: ФИО мастера, вид фото, тип бумаги, кол-во, цена
Определить структурный тип содержащий следующую информацию: ФИО мастера, вид фото, тип бумаги,...

Как узнать какой тип памяти на материнке
Здравствуйте. Вот решил собрать ПК и присмотрел себе мать ASRock B450 Pro4, но нигде не могу найти...

Какой тип данных использует VBA, если тип явно не объявлен
Какой тип данных использует VBA, если тип явно не объявлен


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

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

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