Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Работа с некоторыми Win API функциями (информация о системе)

Тип Реферат
Предмет Информатика и программирование
Просмотров
472
Размер файла
17 б
Поделиться

Ознакомительный фрагмент работы:

Работа с некоторыми Win API функциями (информация о системе)

В этой статьеи будет рассмотрены некоторые Win API функции:

1) GetLogicalDrives

Функция GetLogicalDrives возвращает число-битовую маску в которой храняться все

доступныедиски.

DWORD GetLogicalDrives(VOID);

Параметры:

Эта функция не имеет параметров.

Возвращаемое значение:

Если функция вызвана правильно, то она возвращает число-битовую маску в которой

храняться все доступные диски ( если 0 бит равен 1, то диск "A:" присутствует, и т.д. )

Если функция вызвана не правильно, то она возвращает 0.

Пример:

int n;

char dd[4];

DWORD dr = GetLogicalDrives();

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

{

n = ((dr>>i)&0x00000001);

if( n == 1 )

{

dd[0] = char(65+i); dd[1] = ':'; dd[2] = ''; dd[3] = 0;

cout << "Available disk drives : " << dd << endl;

}

}

2) GetDriveType

Функция GetDriveType возвращаеттипдиска (removable, fixed, CD-ROM,

RAM disk, или network drive).

UINT GetDriveType(LPCTSTR lpRootPathName);

Параметры:

lpRootPathName

[in] Указатель на не нулевую стоку в которой хранится имя

главной директории на диске. Обратный слэш должен присутствовать!

Если lpRootPathName равно NULL, то функция использует текущую директорию.

Возвращаемое значение:

Функция возвращает тип диска. Могут быть следующие значения:

Значение Описание

DRIVE_UNKNOWN Не известный тип.

DRIVE_NO_ROOT_DIR Не правильный путь.

DRIVE_REMOVABLE Съёмный диск.

DRIVE_FIXED Фиксированный диск.

DRIVE_REMOTE Удалённыйили network диск.

DRIVE_CDROM CD-ROM диск.

DRIVE_RAMDISK RAM диск.

Пример:

int d;

d = GetDriveType( "c:" );

if( d == DRIVE_UNKNOWN ) cout << " UNKNOWN" << endl;

if( d == DRIVE_NO_ROOT_DIR ) cout << " DRIVE NO ROOT DIR" << endl;

if( d == DRIVE_REMOVABLE ) cout << " REMOVABLE" << endl;

if( d == DRIVE_FIXED ) cout << " FIXED" << endl;

if( d == DRIVE_REMOTE ) cout << " REMOTE" << endl;

if( d == DRIVE_CDROM ) cout << " CDROM" << endl;

if( d == DRIVE_RAMDISK ) cout << " RAMDISK" << endl;

3) GetVolumeInformation

Функция GetVolumeInformation возвращает информацию о файловой системе и

дисках( директориях ).

BOOL GetVolumeInformation(

LPCTSTR lpRootPathName, // имя диска(директории) [in]

LPTSTR lpVolumeNameBuffer, // названиедиска [out]

DWORD nVolumeNameSize, // длина буфера названия диска [in]

LPDWORD lpVolumeSerialNumber, // сериальный номер диска [out]

LPDWORD lpMaximumComponentLength, // максимальная длина фыйла [out]

LPDWORD lpFileSystemFlags, // опции файловой системы [out]

LPTSTR lpFileSystemNameBuffer, // имя файловой системы [out]

DWORD nFileSystemNameSize // длина буфера имени файл. сист. [in]

);

Возвращаемое значение:

Если функция вызвана правильно, то она возвращает не нулевое значение(TRUE).

Если функция вызвана не правильно, то она возвращает 0(FALSE).

Пример:

char VolumeNameBuffer[100];

char FileSystemNameBuffer[100];

unsigned long VolumeSerialNumber;

BOOL GetVolumeInformationFlag = GetVolumeInformationA(

"c:",

VolumeNameBuffer,

100,

&VolumeSerialNumber,

NULL, //&MaximumComponentLength,

NULL, //&FileSystemFlags,

FileSystemNameBuffer,

100

);

if(GetVolumeInformationFlag != 0)

{

cout << " Volume Name is " << VolumeNameBuffer << endl;

cout << " Volume Serial Number is " << VolumeSerialNumber << endl;

cout << " File System is " << FileSystemNameBuffer << endl;

}

else cout << " Not Present (GetVolumeInformation)" << endl;

4) GetDiskFreeSpaceEx

Функция GetDiskFreeSpaceEx выдаёт информацию о доступном месте на диске.

BOOL GetDiskFreeSpaceEx(

LPCTSTR lpDirectoryName, // имя диска(директории) [in]

PULARGE_INTEGER lpFreeBytesAvailable, // доступно для использования(байт) [out]

PULARGE_INTEGER lpTotalNumberOfBytes, // максимальный объём( в байтах ) [out]

PULARGE_INTEGER lpTotalNumberOfFreeBytes // свободно на диске( в байтах ) [out]

);

Возвращаемое значение:

Если функция вызвана правильно, то она возвращает не нулевое значение(TRUE).

Если функция вызвана не правильно, то она возвращает 0(FALSE).

Пример:

DWORD FreeBytesAvailable;

DWORD TotalNumberOfBytes;

DWORD TotalNumberOfFreeBytes;

BOOL GetDiskFreeSpaceFlag = GetDiskFreeSpaceEx(

"c:", // directory name

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

(PULARGE_INTEGER)&TotalNumberOfBytes, // bytes on disk

(PULARGE_INTEGER)&TotalNumberOfFreeBytes // free bytes on disk

);

if(GetDiskFreeSpaceFlag != 0)

{

cout << " Total Number Of Free Bytes = " << (unsigned long)TotalNumberOfFreeBytes

<< "( " << double(unsigned long(TotalNumberOfFreeBytes))/1024/1000

<< " Mb )" << endl;

cout << " Total Number Of Bytes = " << (unsigned long)TotalNumberOfBytes

<< "( " << double(unsigned long(TotalNumberOfBytes))/1024/1000

<< " Mb )" << endl;

}

else cout << " Not Present (GetDiskFreeSpace)" << endl;

5) GlobalMemoryStatus

Функция GlobalMemoryStatus возвращает информацию о используемой системой памяти.

VOID GlobalMemoryStatus(

LPMEMORYSTATUS lpBuffer // указательнаструктуру MEMORYSTATUS

);

typedef struct _MEMORYSTATUS {

DWORD dwLength; // длинаструктурывбайтах

DWORD dwMemoryLoad; // загрузка памяти в процентах

SIZE_T dwTotalPhys; // максимальное количество физической памяти в байтах

SIZE_T dwAvailPhys; // свободное количество физической памяти в байтах

SIZE_T dwTotalPageFile; // макс. кол. памяти для программ в байтах

SIZE_T dwAvailPageFile; // свободное кол. памяти для программ в байтах

SIZE_T dwTotalVirtual; // максимальное количество виртуальной памяти в байтах

SIZE_T dwAvailVirtual; // свободное количество виртуальной памяти в байтах

} MEMORYSTATUS, *LPMEMORYSTATUS;

Возвращаемое значение:

Эта функция не возвращает параметров

Пример:

// The MemoryStatus structure is 32 bytes long.

// It should be 32.

// 78 percent of memory is in use.

// There are 65076 total Kbytes of physical memory.

// There are 13756 free Kbytes of physical memory.

// There are 150960 total Kbytes of paging file.

// There are 87816 free Kbytes of paging file.

// There are 1fff80 total Kbytes of virtual memory.

// There are 1fe770 free Kbytes of virtual memory.

#define DIV 1024

#define WIDTH 7

char *divisor = "K";

MEMORYSTATUS stat;

GlobalMemoryStatus (&stat);

printf ("The MemoryStatus structure is %ld bytes long.n",

stat.dwLength);

printf ("It should be %d.n", sizeof (stat));

printf ("%ld percent of memory is in use.n",

stat.dwMemoryLoad);

printf ("There are %*ld total %sbytes of physical memory.n",

WIDTH, stat.dwTotalPhys/DIV, divisor);

printf ("There are %*ld free %sbytes of physical memory.n",

WIDTH, stat.dwAvailPhys/DIV, divisor);

printf ("There are %*ld total %sbytes of paging file.n",

WIDTH, stat.dwTotalPageFile/DIV, divisor);

printf ("There are %*ld free %sbytes of paging file.n",

WIDTH, stat.dwAvailPageFile/DIV, divisor);

printf ("There are %*lx total %sbytes of virtual memory.n",

WIDTH, stat.dwTotalVirtual/DIV, divisor);

printf ("There are %*lx free %sbytes of virtual memory.n",

WIDTH, stat.dwAvailVirtual/DIV, divisor);

6) GetComputerName, GetUserNameA

Функция GetComputerName возвращает NetBIOS имялокальногокомпьютера.

BOOL GetComputerName(

LPTSTR lpBuffer, // имялокальногокомпьютера( длинабуфераравна MAX_COMPUTERNAME_LENGTH + 1 ) [out]

LPDWORD lpnSize // размербуфера ( лучшепоставить MAX_COMPUTERNAME_LENGTH + 1 ) [out/in]

);

Функция GetUserName возвращает имя текущего узера.

BOOL GetUserName(

LPTSTR lpBuffer, // имя юзера( длина буфера равна UNLEN + 1 ) [out]

LPDWORD nSize // размер буфера ( лучше поставить UNLEN + 1 ) [out/in]

);

Возвращаемые значения:

Если функции вызваны правильно, то они возвращают не нулевое значение(TRUE).

Если функции вызваны не правильно, то они возвращают 0(FALSE).

Пример:

char ComputerName[MAX_COMPUTERNAME_LENGTH + 1];

unsigned long len_ComputerName = MAX_COMPUTERNAME_LENGTH + 1;

char UserName[UNLEN + 1];

unsigned long len_UserName = UNLEN + 1;

BOOL comp = GetComputerName(

ComputerName,

&len_ComputerName

);

if( comp != 0 ) { cout << "Computer Name is " << ComputerName << endl; }

else cout << "Computer Name is NOT FOUND !!! " << endl;

comp = GetUserNameA (

UserName,

&len_UserName

);

if( comp != 0 ) { cout << "User Name is " << UserName << endl; }

else cout << "User Name is NOT FOUND !!! " << endl;

7) GetSystemDirectory, GetTempPath, GetWindowsDirectory, GetCurrentDirectory

Функция GetSystemDirectory возвращаетпутьксистемнойдиректории.

UINT GetSystemDirectory(

LPTSTR lpBuffer, // буфердлясистемнойдиректории [out]

UINT uSize // размербуфера [in]

);

Возвращаемое значение:

Эта функция возвращает размер буфера для системной директории не включая нулевого

значения в конце, если она вызвана правильно.

Если функция вызвана не правильно, то она возвращает 0.

Функция GetTempPath возвращает путь к директории, отведённой для временных файлов.

DWORD GetTempPath(

DWORD nBufferLength, // размербуфера [in]

LPTSTR lpBuffer // буфер для временной директории [out]

);

Возвращаемое значение:

Эта функция возвращает размер буфера для системной директории не включая нулевого

значения в конце, если она вызвана правильно.

Если функция вызвана не правильно, то она возвращает 0.

Функция GetWindowsDirectory возвращает путь к Windows директории.

UINT GetWindowsDirectory(

LPTSTR lpBuffer, // буфердля Windows директории [out]

UINT uSize // размербуфера [in]

);

Возвращаемое значение:

Эта функция возвращает размер буфера для системной директории не включая нулевого

значения в конце, если она вызвана правильно.

Если функция вызвана не правильно, то она возвращает 0.

Функция GetCurrentDirectory возвращает путь к текущей директории.

DWORD GetCurrentDirectory(

DWORD nBufferLength, // размербуфера [in]

LPTSTR lpBuffer // буфер для текущей директории [out]

);

Возвращаемое значение:

Эта функция возвращает размер буфера для системной директории не включая нулевого

значения в конце, если она вызвана правильно.

Если функция вызвана не правильно, то она возвращает 0.

Пример:

char path[100];

GetSystemDirectory( path, 100 );

cout << "System Directory is " << path << endl;

GetTempPath( 100, path );

cout << "Temp path is " << path << endl;

GetWindowsDirectory( path, 100 );

cout << "Windows directory is " << path << endl;

GetCurrentDirectory( 100, path );

cout << "Current directory is " << path << endl;


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156492
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
64 395 оценок star star star star star
среднее 4.9 из 5
Рудн
Работа выполнена отлично! хороший исполнитель ! Раньше срока все сделала!
star star star star star
ЮУрГУ
Отличная сделанная работа, да и еще и раньше срока, без замечаний. Спасибо.
star star star star star
ОГИС
Работа выполнена быстро и качественно! По написанию-доступна к восприятию! Легко читается!...
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Решить задачи по земельному праву

Решение задач, Юриспруденция

Срок сдачи к 18 янв.

1 минуту назад

Выполнить 9 тестов внимательно!

Тест дистанционно, Инвестиционная безопасность

Срок сдачи к 16 янв.

1 минуту назад

Необходимо выполнить и оформить три лабораторных работы в программе...

Лабораторная, Математическое моделирование

Срок сдачи к 15 янв.

3 минуты назад

Задача. Вариант 13

Решение задач, Станкостроение, машиностроение, детали машин

Срок сдачи к 21 янв.

4 минуты назад

ответить на вопросы

Ответы на билеты, Металлургия цветных металлов

Срок сдачи к 19 янв.

4 минуты назад

Практические работы

Другое, Транспортная инфраструктура, автомобильное дело, машиностроение, детали машин

Срок сдачи к 18 янв.

4 минуты назад

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

Диплом, Информатика

Срок сдачи к 17 янв.

5 минут назад

Выполнить 3 теста по Технологии продукции общественного питания. М-08210

Тест дистанционно, Общественное питание, кулинария

Срок сдачи к 15 янв.

7 минут назад

Патентные исследования по теме студенческой работы «Составы и способы получения пленок из полимерных материалов»

Курсовая, Основы научных исследований и защита информации

Срок сдачи к 23 янв.

7 минут назад

Выполнить строго!!!

Контрольная, Экономическая безопасность

Срок сдачи к 15 янв.

9 минут назад

Сущность языка, проблема его происхождения

Реферат, Русский язык и культура речи

Срок сдачи к 15 янв.

9 минут назад

Методика преподавания дисциплин (модулей) психолого-педагогического профиля

Тест дистанционно, Психология и педагогика

Срок сдачи к 16 янв.

9 минут назад

Криминалистика. Ответить на 2 вопроса и одна задача

Решение задач, Юриспруденция

Срок сдачи к 18 янв.

9 минут назад

Лейкоз семейства кошачьих

Диплом, Дипломная работа + презентация

Срок сдачи к 11 мар.

9 минут назад

Вам нужно сконструировать представления для решения трех различных...

Решение задач, Анализ и визуализация данных, дизайн, информатика экономика,

Срок сдачи к 15 янв.

10 минут назад

Тест дистанционно

Тест дистанционно, Менеджмент организации

Срок сдачи к 30 янв.

11 минут назад
11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно