Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Определение частоты процессора, видеопамяти и др.

Ответить
Настройки темы
C/C++ - [решено] Определение частоты процессора, видеопамяти и др.

Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Как сделать чтоб в окне программы отображалась тактовая частота процессора, информация о видеопамяти, оперативной памяти, ОС и др.?

Код здесь!

Код программы:
Код: Выделить весь код
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Label1Click(TObject *Sender)
{

}
//---------------------------------------------------------------------------
Определения частоты процессора:
Код: Выделить весь код
double CPUSpeed(void) 
 { 
   DWORD dwTimerHi, dwTimerLo; 
   asm
    { 
       DW 0x310F 
       mov dwTimerLo, EAX 
       mov dwTimerHi, EDX 
     } 
   Sleep (500); 
   asm
    { 
       DW 0x310F 
       sub EAX, dwTimerLo 
       sub EDX, dwTimerHi 
       mov dwTimerLo, EAX 
       mov dwTimerHi, EDX 
    } 
   return dwTimerLo/(1000.0*500); 
 }
Определения частоты обновления экрана:
Код: Выделить весь код
HDC hDCScreen = GetDC(NULL);

int RefreshFrequency = GetDeviceCaps(hDCScreen, VREFRESH);

ReleaseDC(NULL, hDCScreen);
Определение размеры экрана:
Код: Выделить весь код
TRect rect;
if( SystemParametersInfo(SPI_GETWORKAREA,0,&rect,0) ) {
// получили размер рабочей области
ShowMessage("WorkArea size is "+AnsiString(rect.Width())+"x"+AnsiString(rect.Height()));
} else {
// не удалось получить размер рабочей области
ShowMessage("GetWorkArea failed");
}
Изменения разрешения экрана:
Код: Выделить весь код
DEVMODE dm;
dm.dmSize = sizeof(DEVMODE);
int index = 0;
while (EnumDisplaySettings(NULL, index, &dm))
{
 if (dm.dmPelsWidth == 800 && dm.dmPelsHeight == 600)
 {
   dm.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
   LONG result = ChangeDisplaySettings(&dm, CDS_TEST);
   if (result == DISP_CHANGE_SUCCESSFUL)
   {
     ChangeDisplaySettings(&dm, 0);
     break;
   }
   else if (result == DISP_CHANGE_RESTART)
   {
     ShowMessage("Требуется перезагрузка");
     break;
   }
   else
   {
     ShowMessage("Установка не поддерживается монитором");
     break;
   }
 }
 index++;
}
Знаю не все коды...пишите еще, необходимые!!

Помогите, пожалуйста, осуществить это!
И можно это же проделать на Делфи?Если да то на сколько будет отличаться код?

Отправлено: 21:36, 24-01-2010

 

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


qE+, совсем недавно была тема Delphi - Определение количества RAM и количества видеопамяти

Отправлено: 22:15, 24-01-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23

Профиль | Сайт | Отправить PM | Цитировать


Admiral,
спасибо за ссылку на не решенною тему
но мне нужно в одном окне отобразить не только количество RAM и количество видеопамяти,
а всю информацию о системе + все это организовать на C++!!
И желательно чтоб кто-то помог т.е. написал полностью рабочий код.

Последний раз редактировалось Virtyaluk, 25-01-2010 в 22:33.


Отправлено: 22:36, 24-01-2010 | #3


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Вложения
Тип файла: rar [Проект]BCB6.0-Устройства.rar
(13.3 Kb, 126 просмотров)

qE+, У меня такой код есть.

1. Разрешение монитора
Код: Выделить весь код
...
// Узнаём разрешение монитора
   Label1->Caption = String(Screen->Monitors[0]->Width) + "x" +Screen->Monitors[0]->Height;
...
2. Узнаём количество оперативной памяти
Код: Выделить весь код
...
// Узнаём количество оперативной памяти
   TMemoryStatus MS;
   MS.dwLength = sizeof(MS);
   GlobalMemoryStatus(&MS);
   Label2->Caption = String("Всего памяти:                         ") + FormatFloat("#,###' МБ'", MS.dwTotalPhys / 1024);
   CHAR lpMemLoad[5];
   sprintf(lpMemLoad, "%d %%", MS.dwMemoryLoad);
   Label3->Caption = String("Использование ОЗУ:               ") + lpMemLoad;
...
3. Всего памяти.
Код: Выделить весь код
 ...
   MEMORYSTATUS mem;
   memset((void*)&mem, 0, sizeof(mem));
   mem.dwLength = sizeof(mem);
   GlobalMemoryStatus(&mem);
   Label4->Caption = String("Всего памяти: ") + IntToStr(mem.dwTotalPhys);
...
И проект прикреплю, честно скажу, не мой, скачал с другого форума, но в своё время мне этот проект немного помог.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:39, 24-01-2010 | #4


Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23

Профиль | Сайт | Отправить PM | Цитировать


Drongo,
спасибо за код.
если можно, напишите еще для определения ОС и VRAM
И поместите все это в одно окошко в окне всей программы т.е. сюда:
Код: Выделить весь код
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Label1Click(TObject *Sender)
{

}
//---------------------------------------------------------------------------
P.S. Программа из прикрепленного файла не запустилась, просит vcl60.bpl - ОСь у меня Win7U

Отправлено: 22:47, 24-01-2010 | #5


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Вложения
Тип файла: 7z Project1.7z
(182.5 Kb, 49 просмотров)

Цитата qE+:
P.S. Программа из прикрепленного файла не запустилась, просит vcl60.bpl »
Это потому что при компиляции не снята галка "использовать пакеты" Вот рабочая прога.
Цитата qE+:
И поместите все это в одно окошко в окне всей программы т.е. сюда: »
Ну, поместить вы впринципе и сами можете, дело в том, что я не знаю структуры вашей программы, что и куда должно выводиться у вас... В моём примере всё выводится на Label1, Label2, и т.д...
Цитата qE+:
если можно, напишите еще для определения ОС и VRAM »
Боюсь, здесь тоже ничем не смогу помочь.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 22:58, 24-01-2010 | #6


Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23

Профиль | Сайт | Отправить PM | Цитировать


Drongo,
исходя из прикрепленного вами файла:
- как сделать чтоб информация отображалась не при нажатии кнопки?
- можно ли как-то MessageDlg(Information_String, mtInformation, TMsgDlgButtons() << mbOK, 0);
поместить в форму??

Отправлено: 22:40, 25-01-2010 | #7


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата qE+:
- как сделать чтоб информация отображалась не при нажатии кнопки?
можно ли как-то MessageDlg(Information_String, mtInformation, TMsgDlgButtons() << mbOK, 0);
поместить в форму?? »
Конечно, в комменте 4 на листинге (не в прикреклённом файле) примеры приведены. Нужно на форму кинуть компоненты Label1, Label2, и т.д.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 12:59, 26-01-2010 | #8


Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23

Профиль | Сайт | Отправить PM | Цитировать


Всем спасибо за помощь, сам решил все!
На сайте Майкрософт есть специальная утилита, которая показывает код для нужного устройства.

Отправлено: 14:44, 24-03-2010 | #9


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата Virtyaluk:
На сайте Майкрософт есть специальная утилита, которая показывает код для нужного устройства »
Скинь название проги и ссылку на неё.

Решением поделиться можешь?

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 18:40, 24-03-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Определение частоты процессора, видеопамяти и др.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] определение процессора zic_t Хочу все знать 4 03-07-2015 16:44
определение температуры процессора Dafi Процесcоры 28 22-01-2013 01:50
Delphi - Определение количества RAM и количества видеопамяти stasmd Программирование и базы данных 17 05-04-2010 13:35
определение процессора LVG Процесcоры 7 27-08-2009 23:21
[решено] Определение частоты процессора и размера ОЗУ без наклейки asus a9rp Хочу все знать 22 26-06-2009 20:19




 
Переход