Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2007, 16:04   #1
Д'якон
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 236
По умолчанию

Уважаемые прогрммисты! Помогите воспользоваться функцией
Цитата:
The GetSystemInfo function returns information about the current system.

VOID GetSystemInfo(

LPSYSTEM_INFO lpSystemInfo // address of system information structure
);


Parameters

lpSystemInfo

Points to a SYSTEM_INFO structure to be filled in by this function.
Написано - в параметре address of system information. Я задаю адресс переменной. Говорит несовпадение параметров. Как мне отобразить на экран результат действия этой функции.

Зарание спасибо

Последний раз редактировалось rpy3uH; 20.12.2007 в 19:28.
Д'якон вне форума Ответить с цитированием
Старый 20.12.2007, 16:25   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Я задаю адресс переменной. Говорит несовпадение параметров.
Какой переменной???
Там же по русс..., т.е. по аглицки ясно сказано:
lpSystemInfo - Points to a SYSTEM_INFO structure to be filled in by this function
или по-русски:
lpSystemInfo - указывает на СТРУКТУРУ (а не переменную!!!) SYSTEM_INFO, заполняемую этой функцией.
Объявите структуру, используйте указатель на нее. И будет вам полное счастье...
Только не надо спрашивать - что такое структура и проч.
Читайте умную книжку, взятую с сайта форума, благо их там хватает...
mihali4 вне форума Ответить с цитированием
Старый 20.12.2007, 17:47   #3
Д'якон
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 236
По умолчанию

Все разобрался и написал.
Теперь другой вопрос. Я его когда-то уже задавал на этом форуме, но так никто и не ответил (может конечно никто не знает). Повторюсь.

Как получить сведения о системе. А именно, например, имя процессора, которое также отображается во вкладке "Общие" в св-вах моего компьютера?
Заранее благодарен
Д'якон вне форума Ответить с цитированием
Старый 20.12.2007, 18:35   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Д'якон Посмотреть сообщение
Как получить сведения о системе. А именно, например, имя процессора, которое также отображается во вкладке "Общие" в св-вах моего компьютера?
Заранее благодарен
Не понял...
Вы саму структуру смотрели?
Цитата:
typedef struct _SYSTEM_INFO { // sinf
union {
DWORD dwOemId;
struct {
WORD wProcessorArchitecture;
WORD wReserved;
};
};
DWORD dwPageSize;
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
DWORD dwActiveProcessorMask;
DWORD dwNumberOfProcessors;
DWORD dwProcessorType;

DWORD dwAllocationGranularity;
WORD wProcessorLevel;
WORD wProcessorRevision;

} SYSTEM_INFO;
Анализируя выделенные жирным значения, и составьте наименование в том виде, который вам хочется.
То, что хранится в реестре, примерно так и получено.

Последний раз редактировалось mihali4; 20.12.2007 в 19:54.
mihali4 вне форума Ответить с цитированием
Старый 20.12.2007, 18:44   #5
Д'якон
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 236
По умолчанию

Т.е. я правильно понял? Что анализируя данные сведения я смогу получить текст вида:

Intel(R) Pentium(R) 4 CPU 2.00 Ghz (мне нужна эта надпись в точности до единого символа) (к стати она же и отображается в имени процессора а его св-вах)
Можно ее получить?
Просто ответте да, нет.
Д'якон вне форума Ответить с цитированием
Старый 20.12.2007, 18:49   #6
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Эта строка хранится отут
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIP TION\System\CentralProcessor\0\Proc essorNameString
пыщь
JTG вне форума Ответить с цитированием
Старый 20.12.2007, 18:58   #7
Д'якон
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 236
Восклицание

Спасибо большое. Просто огромное. Вы помогли сотням, а может и тысячам людей. ЭТО ПРОСТО СУПЕР.
Д'якон вне форума Ответить с цитированием
Старый 20.12.2007, 20:00   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Эта строка хранится отут
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIP TION\System\CentralProcessor\0\Proc essorNameString
А вот у меня на ноуте такого параметра нетути...
И полного имени нет, есть только по отдельности три параметра:
~Mhz ...
Identifier x86 Family...
VendorIdentifier GenuineIntel
mihali4 вне форума Ответить с цитированием
Старый 20.12.2007, 20:03   #9
Д'якон
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 236
По умолчанию

Раз вынесли это в отдельную тему позволю себе написать правильное использование функции, чтобы новички типа меня не допускали моих ошибок.

var
info:TSystemInfo;
begin
GetSystemInfo(info);
;для выводна на экран, например
label1.Caption:=FloatToStr(info.пар аметр(например,dwActiveProcessorMas k)
Д'якон вне форума Ответить с цитированием
Старый 21.12.2007, 12:32   #10
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Если совсем нечего делать - всю эту бадягу с процом можно заменить на ассемблерную инструкцию CPUID, которая поддерживается большинством процессоров ("допентиумные четвёрки" не в счёт )

В часности ту-самую строку можно достать вот так (пардон за com-файл, так проще FASM)

Код:
org 100h

xor eax,eax
cpuid
mov dword[vendor],ebx
mov dword[vendor+4],edx
mov dword[vendor+8],ecx
mov ah,9
mov dx,vendor
int 21h

mov eax,80000002h
cpuid
mov dword[name],eax
mov dword[name+4],ebx
mov dword[name+8],ecx
mov dword[name+12],edx
mov eax,80000003h
cpuid
mov dword[name],eax
mov dword[name+4],ebx
mov dword[name+8],ecx
mov dword[name+12],edx
mov eax,80000004h
cpuid
mov dword[name+16],eax
mov dword[name+20],ebx
mov dword[name+24],ecx
mov dword[name+28],edx

mov ah,9
mov dx,name
int 21h

xor ah,ah
int 16h
int 20h

vendor db 12 dup (0),13,10,'$'
name db 48 dup (0),'$'
Подрбнее
http://en.wikipedia.org/wiki/CPUID
http://ru.wikipedia.org/wiki/CPUID
http://wasm.ru/article.php?article=hardzen
Вложения
Тип файла: zip CPUID.zip (496 байт, 47 просмотров)
пыщь
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA и информация о системе iammajor Microsoft Office Excel 2 07.07.2008 05:48
Еще один курсор в системе Dj_smart Общие вопросы Delphi 0 05.06.2008 19:59
Инфа о системе Sargon Работа с сетью в Delphi 2 23.12.2007 00:52
Delphi. Программа, которая использует системные функции для получения информации о файловой системе metamfetamin Помощь студентам 16 08.11.2007 13:24
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50