на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Курсовая работа: Информационная система сравнительного анализа работы компьютера


n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

}

}

dwDevices >>= 1;

}


2. Использование программы Sysinfo для анализа работы компьютера

Для начала выполнения программы запустите файл SysInfo. exe. На экране появится окно с простым интерфейсом которое представлено на рисунке 3.1, в котором с левой стороны информация об оборудовании компьютера по отдельным пунктам, а именно:

системная информация;

оперативная память;

информация о процессоре;

IP адрес машины;

информация о принтерах;

текущий видеорежим;

информация о локальных дисках.

Справа же будет отображаться подробная информации по тому или иному пункту.

Рисунок 3.1 - Внешний вид главного окна программы


Выводы

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

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

В частности, были решены задачи корректной работы приложения, правильного выведения необходимой информации на экран.

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

Недостатками результирующего программного средства являются:

недостаточная гармоничность и привлекательность графической составляющей проекта;

небольшие задержки при выполнении приложения на компьютерах с малым объемом оперативной памяти;

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


Список используемых источников

1.  Павловская Т.А. С/C++. Программирование на языке высокого уровня. СПб: Издательство "Питер", 2001. - 464с.

2.  Глушаков С.В., Коваль А.В., Черпнин С.А. Программирование на Visual C++: Издательство "Фолио", 2002. - 721с. - (Учебный курс).

3.  Бондарено В.М., Рублинецкий В.И., Качко Е.Г. Основы программирования: Издательство "Фолио", 1997. - 368с.

4.  http://msdn. microsoft.com/

5.  http://intuit.ru/

6.  http://windxp.ru/

7.  ДСТУ 3008-95 "ЗВІТИ У СФЕРІ НАУКИ І ТЕХНІКИ. Структура та правила оформлення".


Приложение текст программы

main. cpp

#include <windows. h> // подключение библиотеки с функциями API

#include "resource. h"

#include "Index. h"

#include <fstream. h>

#include <ddraw. h>

#define Id_List 4002

// Глобальные переменные:

HINSTANCE hInst; // Указатель приложения

LPCTSTR szWindowClass = "SysInfo";

LPCTSTR szTitle = "Информация о системе";

LPCTSTR lpText = "Программа для получения информации о системе\nВерсия: 1.0\n2009";

LPCTSTR lpCaption = "О программе";

HWND Listbox;

HWND StaticText;

HWND hWnd;

const int n_Count = 7;

Info Info_list [n_Count];

void Create_List ();

void Save ();

// Предварительное описание функций

ATOM MyRegisterClass (HINSTANCE hInstance);

BOOL InitInstance (HINSTANCE, int);

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

// Основная программа

int APIENTRY WinMain (HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

MSG msg;

// Регистрация класса окна

MyRegisterClass (hInstance);

// Создание окна приложения

if (! InitInstance (hInstance, nCmdShow))

{

return FALSE;

}

// Цикл обработки сообщений

while (GetMessage (&msg, NULL, 0, 0))

{

TranslateMessage (&msg);

DispatchMessage (&msg);

}

return msg. wParam;

}

// FUNCTION: MyRegisterClass ()

// Регистрирует класс окна

ATOM MyRegisterClass (HINSTANCE hInstance)

(WNDCLASSEX);

// FUNCTION: InitInstance (HANDLE, int)

// Создает окно приложения и сохраняет указатель приложения в переменной hInst

BOOL InitInstance (HINSTANCE hInstance, int nCmdShow)

{

hInst = hInstance; // сохраняет указатель приложения в переменной hInst

hWnd=CreateWindow (szWindowClass, // имя класса окна

szTitle, // имя приложения

WS_OVERLAPPEDWINDOW, // стиль окна

CW_USEDEFAULT, // положение по Х

CW_USEDEFAULT, // положение по Y

CW_USEDEFAULT, // размер по Х

CW_USEDEFAULT, // размер по Y

NULL, // описатель родительского окна

NULL, // описатель меню окна

hInstance, // указатель приложения

NULL); // параметры создания.

if (! hWnd) // Если окно не создалось, функция возвращает FALSE

{

return FALSE;

}

StaticText = CreateWindow ("edit", "", WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_READONLY, 0,0,0,0, hWnd, (HMENU) 4001, hInst, NULL);

Listbox = CreateWindow ("listbox", "", LBS_NOTIFY|WS_VSCROLL|WS_BORDER|WS_CHILD|WS_VISIBLE|WS_TABSTOP|LBS_DISABLENOSCROLL, 0,0,0,0, hWnd, (HMENU) 4002, hInst, NULL);

Create_List ();

ShowWindow (hWnd, nCmdShow); // Показать окно

UpdateWindow (hWnd); // Обновить окно

return TRUE; // Успешное завершение функции

}

// FUNCTION: WndProc (HWND, unsigned, WORD, LONG)

// Оконная процедура. Принимает и обрабатывает все сообщения, прихо-дящие в приложение

LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

PAINTSTRUCT ps;

HDC hdc;

RECT rt;

switch (message)

{

case WM_CREATE: // Сообщение приходит при создании окна

break;

case WM_SIZE:

{

GetClientRect (hWnd, &rt);

int w = (rt. right-rt. left) /4;

MoveWindow (Listbox, rt. left, rt. top, w, rt. bottom-rt. top, TRUE);

MoveWindow (StaticText, rt. left+w, rt. top, w*3, rt. bottom-rt. top, TRUE);

}

break;

case WM_COMMAND:

{

switch (LOWORD (wParam))

{

case Id_List:

{

int Count = SendMessage (Listbox, LB_GETCURSEL, 0, 0);

if ( ( (Count>=0) && (Count<=n_Count)) && (HIWORD (wParam) ==LBN_SELCHANGE))

{

Info_list [Count]. function ();

}

}

break;

case ID_MENUITEM40001:

Save ();

break;

case ID_ABOUT:

MessageBox (hWnd,lpText,lpCaption,MB_OK);

break;

default:

return DefWindowProc (hWnd, message, wParam, lParam);

break;

}

}

break;

case WM_PAINT: // Перерисовать окно

hdc = BeginPaint (hWnd, &ps); // Начать графический вывод

GetClientRect (hWnd, &rt); // Область окна для рисования

EndPaint (hWnd, &ps); // Закончить графический вывод

break;

case WM_DESTROY: // Завершение работы

PostQuitMessage (0);

break;

default:

// Обработка сообщений, которые не обработаны пользователем

return DefWindowProc (hWnd, message, wParam, lParam);

}

return DefWindowProc (hWnd, message, wParam, lParam);;

}

void Create_List ()

{

Info_list [0]. CreateInfo ("Системная информация", 0, & (SysInf));

Info_list [1]. CreateInfo ("Оперативная память", 1, & (MemStat));

Info_list [2]. CreateInfo ("Информация о процессоре", 1, & (CPUInfo));

Info_list [3]. CreateInfo ("IP Адрес машины", 1, & (GetCurentIP));

Info_list [4]. CreateInfo ("Информация о принтерах", 1, & (PrinterInfo));

Info_list [5]. CreateInfo ("Текущий видеорежим", 1, & (DxInfo));

Info_list [6]. CreateInfo ("Информация о дисках", 1, & (DrivesInfo));

}

void Save ()

{

char *adress = new char [_MAX_PATH];

OPENFILENAME of;

// Работа с диалоговым окном

strcpy (adress,"SysInfo");

of. lStructSize=sizeof (OPENFILENAME);

of. hwndOwner=hWnd;

of. hInstance=hInst;

of. lpstrFilter="txt Files (*. txt) \0*. txt\0\0";

of. lpstrCustomFilter=NULL;

of. nMaxCustFilter=0;

of. nFilterIndex=0;

of. lpstrFile=adress;

of. nMaxFile=_MAX_PATH;

of. lpstrFileTitle=NULL;

of. nMaxFileTitle=_MAX_FNAME + _MAX_EXT;

of. lpstrInitialDir=NULL;

of. lpstrTitle=NULL;

of. Flags=OFN_OVERWRITEPROMPT;

of. nFileOffset=0;

of. nFileExtension=0;

of. lpstrDefExt="info";

of. lCustData=0L;

of. lpfnHook=NULL;

of. lpTemplateName=NULL;

if (GetSaveFileName (&of) ==TRUE)

{

strcpy (adress, of. lpstrFile);

ofstream fout (adress);

char *text = new char [4000];

GetWindowText (StaticText, text, 4000);

fout<<text;

fout. close ();

delete [] text;

}

}

Index. cpp

#include "Index. h"

#include <windows. h>

#define DIV 1024

extern HWND Listbox;

extern HWND StaticText;

extern HWND hWnd;

Info:: Info ()

{

Index = 0;

value = new char [50];

}

void Info:: CreateInfo (char* value, int Index, void (*function) ())

{

this->value = value;

this->Index = Index;

this->function = function;

SendMessage (Listbox, LB_ADDSTRING, NULL, (LPARAM) value);

}

void SysInf ()

{

char * lpszSystemInfo = new char [BUFSIZE]; // указатель на строку, в которой

for (int a=0; a<BUFSIZE; a++)

lpszSystemInfo [a] = '\0';

// будет информация о системе.

DWORD cchBuff = 256; // длина имени компьютера или

// пользователя.

DWORD dwResult; // возвращаемое значение функции.

// Получаем и отображаем имя компьютера.

LPTSTR temp = new TCHAR [256];

if (GetComputerName (temp, &cchBuff))

{

strcat (lpszSystemInfo, "Имя компьютера: \t\t");

strcat (lpszSystemInfo, temp);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

}

// Получаем и отображаем имя пользователя.

if (GetUserName (temp, &cchBuff))

{

strcat (lpszSystemInfo, "Имя пользователя: \t");

strcat (lpszSystemInfo, temp);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

}

// Получаем и отображаем системную директорию.

if (GetSystemDirectory (temp, MAX_PATH+1))

{

strcat (lpszSystemInfo, "Системная директория: \t");

strcat (lpszSystemInfo, temp);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

}

// Получаем и отображаем директорию Windows.

if (GetWindowsDirectory (temp, MAX_PATH+1))

{

strcat (lpszSystemInfo, "Директория Windows: \t");

strcat (lpszSystemInfo, temp);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

}

// Получаем переменную окружения OS.

dwResult = ExpandEnvironmentStrings (

"Тип OS: \t\t\t%OS%",

temp,

BUFSIZE);

if (dwResult <= BUFSIZE)

{

strcat (lpszSystemInfo, temp);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

}

dwResult = ExpandEnvironmentStrings (

"Папка TEMP: \t\t%TEMP%",

temp,

BUFSIZE);

if (dwResult <= BUFSIZE)

{

strcat (lpszSystemInfo, temp);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

}

SendMessage (StaticText, WM_SETTEXT, 0, (LPARAM) lpszSystemInfo);

}

void MemStat ()

{

MEMORYSTATUS stat;

GlobalMemoryStatus (&stat);

LPTSTR lpszSystemInfo = new char [BUFSIZE]; // указатель на строку, в которой

for (int a=0; a<BUFSIZE; a++)

lpszSystemInfo [a] = '\0'; // будет информация о системе.

char *tmp = new char [32];

strcat (lpszSystemInfo, "Размер структуры MemoryStatus \t\t\t");

itoa (stat. dwLength, tmp,

10);

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Количество используемой ОЗУ,% \t\t\t");

itoa (stat. dwMemoryLoad, tmp,

10);

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-3] = 13;

lpszSystemInfo [n_long-2] = 10;

strcat (lpszSystemInfo, "Количество физической памяти, Kb \t\t\t");

itoa (stat. dwTotalPhys/DIV, tmp,

10);

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Свободно физической памяти, Kb \t\t\t");

itoa (stat. dwAvailPhys/DIV, tmp,

10);

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Количество виртуальной памяти, Kb \t\t\t");

itoa (stat. dwTotalVirtual/DIV, tmp,

10);

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Количество свободной виртуальной памяти, Kb \t");

itoa (stat. dwAvailVirtual/DIV, tmp,

10);

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

n_long = strlen (lpszSystemInfo);

for (a=0; a<n_long; a++)

SendMessage (StaticText, WM_SETTEXT, 0, (LPARAM) lpszSystemInfo);

}

void CPUInfo ()

{

SYSTEM_INFO siSysInfo;

GetSystemInfo (&siSysInfo);

LPTSTR lpszSystemInfo = new char [4000]; // указатель на строку, в которой

for (int a=0; a<BUFSIZE; a++)

lpszSystemInfo [a] = '\0'; // будет информация о системе.

char *tmp = new char [32];

strcat (lpszSystemInfo, "Кличество процессоров (ядер) \t");

itoa (siSysInfo. dwNumberOfProcessors, tmp,

10);

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Тип процессора \t\t\t");

itoa (siSysInfo. dwProcessorType, tmp,

10);

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Архитектура процессора \t\t");

itoa (siSysInfo. wProcessorArchitecture, tmp, 20);

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Level процессора \t\t\t");

itoa (siSysInfo. wProcessorLevel, tmp, 20);

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Revision процессора \t\t");

itoa (siSysInfo. wProcessorRevision, tmp, 20);

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Активная маска процессора \t\t");

itoa (siSysInfo. dwActiveProcessorMask, tmp, 20);

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

n_long = strlen (lpszSystemInfo);

for (a=0; a<n_long; a++)

SendMessage (StaticText, WM_SETTEXT, 0, (LPARAM) lpszSystemInfo);

}

void GetCurentIP ()

{

LPTSTR lpszSystemInfo = new char [BUFSIZE]; // указатель на строку, в которой

for (int a=0; a<BUFSIZE; a++)

lpszSystemInfo [a] = '\0'; // будет информация о системе.

char *tmp = new char [32];

WSADATA wsaData;

WORD WINSOCK_VERSION;

if (! WSAStartup (WINSOCK_VERSION, &wsaData))

{

char chInfo [64];

if (! gethostname (chInfo,sizeof (chInfo)))

{

strcat (lpszSystemInfo, "Имя локальной машины: \t\t");

strcat (lpszSystemInfo, chInfo);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long] = 13;

lpszSystemInfo [n_long+1] = 10;

hostent *sh;

sh=gethostbyname ( (char*) &chInfo);

if (sh! =NULL)

{

strcat (lpszSystemInfo, "Имя доступной локальной машины: \t");

strcat (lpszSystemInfo, sh->h_name);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long] = 13;

lpszSystemInfo [n_long+1] = 10;

int nAdapter = 0;

while (sh->h_addr_list [nAdapter])

{

struct sockaddr_in adr;

memcpy (&adr. sin_addr,sh->h_addr_list [nAdapter],sh->h_length);

strcat (lpszSystemInfo, "IP адрес локальной машины: \t");

strcat (lpszSystemInfo, inet_ntoa (adr. sin_addr));

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long] = 13;

lpszSystemInfo [n_long+1] = 10;

nAdapter++;

}

}

WSACleanup (); }

}

/*NCB SNcb; // Структура для работы с NetBios

CHAR rc = 0; // Код возврата

CHAR Status [256]; // Буфер для получения данных

CHAR HostName [] ="SomeHost"; // Имя удалённого компа

CHAR MAC [20]; // Буфер для нашего MAC-адреса.

memset (&SNcb, 0, sizeof (SNcb));

SNcb. ncb_command = NCBRESET;

SNcb. ncb_lana_num = 0;

rc=Netbios (&SNcb); // Сбрасываем NetBios

memset (&SNcb, 0, sizeof (NCB));

SNcb. ncb_command = NCBASTAT;

SNcb. ncb_buffer = (unsigned char*) Status;

SNcb. ncb_length = 256;

lstrcpy ( (char*) SNcb. ncb_callname, HostName);

SNcb. ncb_lana_num = 0; // Сетевой адаптор по умалчанию

rc = Netbios (&SNcb);

if (rc==NRC_GOODRET) // Если всё ОК

memcpy (MAC, Status,

6);

// itoa (MAC, tmp, 20);

strcat (lpszSystemInfo, Status);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long] = 13;

lpszSystemInfo [n_long+1] = 10; */

SendMessage (StaticText, WM_SETTEXT, 0, (LPARAM) lpszSystemInfo);

}

void PrinterInfo ()

{

LPTSTR lpszSystemInfo = new char [BUFSIZE]; // указатель на строку, в которой

for (int a=0; a<BUFSIZE; a++)

lpszSystemInfo [a] = '\0';

PRINTER_INFO_2 printinfo;

char pname [100];

char strpPrinterName [100], strpPortName [100], strpDriverName [100], strpPrintProcessor [100];

printinfo. pPrinterName = strpPrinterName;

printinfo. pPortName = strpPortName;

printinfo. pDriverName = strpDriverName;

printinfo. pPrintProcessor = strpPrintProcessor;

PRINTER_INFO_2 *Pr;

DWORD byteNeed = 0,prCount=0; // Кол-во необходимых байт, количество принтеров

// Делаем первый вызов с буфером NULL, чтоб узнать нужный размер буфера

EnumPrinters (PRINTER_ENUM_CONNECTIONS|PRINTER_ENUM_LOCAL,NULL,2,NULL,0,&byteNeed,&prCount);

// Создаем буфер

Pr = new PRINTER_INFO_2 [byteNeed];

// Делаем второй вызов уже с нужным буфером

if (EnumPrinters (PRINTER_ENUM_CONNECTIONS|PRINTER_ENUM_LOCAL,NULL,2, (LPBYTE) Pr,byteNeed,&byteNeed,&prCount))

{

for (int i = 0; i < prCount; ++i)

{

strcat (lpszSystemInfo, "Установленные принтеры: \t");

strcat (lpszSystemInfo, Pr [i]. pPrinterName);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Порт принтера: \t\t");

strcat (lpszSystemInfo, Pr [i]. pPortName);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Драйвер принтера: \t");

strcat (lpszSystemInfo, Pr [i]. pDriverName);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Процессор печати: \t");

strcat (lpszSystemInfo, Pr [i]. pPrintProcessor);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

SendMessage (StaticText, WM_SETTEXT, 0, (LPARAM) lpszSystemInfo);

}

}

delete Pr;

}

void DxInfo ()

{

LPTSTR lpszSystemInfo = new char [BUFSIZE]; // указатель на строку, в которой

for (int a=0; a<BUFSIZE; a++)

lpszSystemInfo [a] = '\0';

char *tmp = new char [20];

GUID *lpGUID;

LPDIRECTDRAW lplpDD;

DirectDrawCreate (0,&lplpDD,NULL);

DDSURFACEDESC pDDS;

ZeroMemory (&pDDS, sizeof (DDSURFACEDESC));

pDDS. dwSize = sizeof (DDSURFACEDESC);

lplpDD->GetDisplayMode (&pDDS);

strcat (lpszSystemInfo, "Информация о текущем видеорежиме: ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long] = 13;

lpszSystemInfo [n_long+1] = 10;

lpszSystemInfo [n_long+2] = 13;

lpszSystemInfo [n_long+3] = 10;

itoa (pDDS. dwHeight, tmp,

10);

strcat (lpszSystemInfo, "Количество точек по вертикали: \t");

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

itoa (pDDS. dwWidth, tmp,

10);

strcat (lpszSystemInfo, "Количество точек по горизонтали: \t");

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

itoa (pDDS. dwRefreshRate, tmp,

10);

strcat (lpszSystemInfo, "Частота обновления, Гц: \t\t");

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

itoa (pDDS. dwAlphaBitDepth, tmp,

10);

strcat (lpszSystemInfo, "Глубина альфа-буффра (бит/пиксел): \t");

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

itoa (pDDS. ddpfPixelFormat. dwRGBBitCount, tmp,

10);

strcat (lpszSystemInfo, "Глубина RGB цвета (бит/пиксел): \t");

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

itoa (pDDS. ddpfPixelFormat. dwZBufferBitDepth, tmp,

10);

strcat (lpszSystemInfo, "Глубина Z-буффра (бит/пиксел): \t");

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

itoa (pDDS. ddpfPixelFormat. dwAlphaBitDepth, tmp,

10);

strcat (lpszSystemInfo, "Глубина альфа-канала (бит/пиксел): \t");

strcat (lpszSystemInfo, tmp);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

SendMessage (StaticText, WM_SETTEXT, 0, (LPARAM) lpszSystemInfo);

}

void DrivesInfo ()

{

LPTSTR lpszSystemInfo = new char [BUFSIZE]; // указатель на строку, в которой

for (int a=0; a<BUFSIZE; a++)

lpszSystemInfo [a] = '\0';

char cDevices [] = "A: \\";

DWORD dwDevices = GetLogicalDrives (); // получаем все логические диски

bool flag = false;

for (int i = 0; dwDevices; i++) // проверяем на наличие дисков

{

if (dwDevices & 1)

{

cDevices [0] = 'A' + i;

flag = true;

}

if (flag)

{

flag = false;

strcat (lpszSystemInfo, "Диск ");

strcat (lpszSystemInfo, cDevices);

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long] = 13;

lpszSystemInfo [n_long+1] = 10;

UINT type = GetDriveType (cDevices);

switch (type)

{

case DRIVE_UNKNOWN:

strcat (lpszSystemInfo, "Не известный тип");

break;

case DRIVE_NO_ROOT_DIR:

strcat (lpszSystemInfo, "Не правильный путь");

break;

case DRIVE_REMOVABLE:

strcat (lpszSystemInfo, "Съёмный диск");

break;

case DRIVE_FIXED:

strcat (lpszSystemInfo, "Жесткий диск");

break;

case DRIVE_REMOTE:

strcat (lpszSystemInfo, "Удалённый или network диск. ");

break;

case DRIVE_CDROM:

strcat (lpszSystemInfo, "CD-ROM диск");

break;

case DRIVE_RAMDISK:

strcat (lpszSystemInfo, "RAM диск");

break;

}

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

/***********************************************************/

char VolumeNameBuffer [100];

VolumeNameBuffer [0] = '\0';

char FileSystemNameBuffer [100];

FileSystemNameBuffer [0] = '\0';

unsigned long VolumeSerialNumber;

BOOL GetVolumeInformationFlag = GetVolumeInformation (

cDevices,

VolumeNameBuffer,

100,&VolumeSerialNumber,

NULL, // &MaximumComponentLength,

NULL, // &FileSystemFlags,

FileSystemNameBuffer,

100

);

strcat (lpszSystemInfo, "Имя диска: ");

strcat (lpszSystemInfo, VolumeNameBuffer);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long] = 13;

lpszSystemInfo [n_long+1] = 10;

char *serial = new char [20];

serial [0] = '\0';

itoa (VolumeSerialNumber, serial,

10);

strcat (lpszSystemInfo, "Серийный номер: ");

strcat (lpszSystemInfo, serial);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long] = 13;

lpszSystemInfo [n_long+1] = 10;

strcat (lpszSystemInfo, "Файловая система: ");

strcat (lpszSystemInfo, FileSystemNameBuffer);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long] = 13;

lpszSystemInfo [n_long+1] = 10;

/***********************************************************/

if (type! = DRIVE_FIXED)

{

dwDevices >>= 1;

continue;

}

DWORD FreeBytesAvailable;

DWORD TotalNumberOfBytes;

DWORD TotalNumberOfFreeBytes;

BOOL GetDiskFreeSpaceFlag = GetDiskFreeSpaceEx (

cDevices, // directory name

(PULARGE_INTEGER) &FreeBytesAvailable, // bytes available to caller

(PULARGE_INTEGER) &TotalNumberOfBytes, // bytes on disk

(PULARGE_INTEGER) &TotalNumberOfFreeBytes // free bytes on disk

);

if (GetDiskFreeSpaceFlag! = FALSE)

{

char * free = new char [20];

itoa ( (unsigned long int) FreeBytesAvailable, free,

10);

char * total = new char [20];

itoa ( (unsigned long int) TotalNumberOfBytes, total,

10);

char * avaliable = new char [20];

itoa ( (unsigned long int) TotalNumberOfFreeBytes, avaliable,

10);

strcat (lpszSystemInfo, "Свободно: ");

strcat (lpszSystemInfo, free);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Общий объем: ");

strcat (lpszSystemInfo, total);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

strcat (lpszSystemInfo, "Доступно ");

strcat (lpszSystemInfo, avaliable);

strcat (lpszSystemInfo, " ");

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

}

}

dwDevices >>= 1;

}

strcat (lpszSystemInfo, " ");

int n_long = strlen (lpszSystemInfo);

lpszSystemInfo [n_long-2] = 13;

lpszSystemInfo [n_long-1] = 10;

SendMessage (StaticText, WM_SETTEXT, 0, (LPARAM) lpszSystemInfo);

}

Index. h

#pragma once

#include <ddraw. h>

#define BUFSIZE 1024

void SysInf ();

void MemStat ();

void CPUInfo ();

void GetCurentIP ();

void PrinterInfo ();

void DxInfo ();

void DrivesInfo ();

class Info

{

public:

Info ();

void CreateInfo (char* value, int Index, void (*function) ());

void (*function) ();

private:

int Index;

char *value;

};


Страницы: 1, 2


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.