Формирование протоколов, задание к курсовой |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Формирование протоколов, задание к курсовой |
Atreides |
Сообщение
#1
|
Ветеран Броуновского Движения Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: 0 |
В задание к курсовой попалось два вопроса: 1. Формирование протокола использования процессора (дата, время начала и окончания прикладного процесса). 2. Протоколирование моментов изменений в файловой системе и самих изменений в заданном каталоге. Как это понимать и сделать? Еще одно задание я выполнил только на половину: Вывод текущего объема свободной и занятой дисковой памяти на каждом логическом устройстве (диаграмма) и сведений о возможностях файловой системы на каждом устройстве. Сведения я получил, а вот как определить свободное и занятое место и вывести результат в виде диаграммы? -------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
Артемий |
Сообщение
#2
|
Помощник капитана Группа: Пользователи Сообщений: 601 Пол: Мужской Реальное имя: Артем Репутация: 2 |
а ты прикрепи то что делал и посмотрим!
-------------------- Dum spiro spero!
|
Atreides |
Сообщение
#3
|
Ветеран Броуновского Движения Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: 0 |
Да, вот высведений о возможностях файловой системы на каждом устройстве:
Код //получение свободного места на HD procedure TForm1.UpdateDisk; var lpRootPathName : PChar; lpVolumeNameBuffer : PChar; nVolumeNameSize : DWORD; lpVolumeSerialNumber : DWORD; lpMaximumComponentLength : DWORD; lpFileSystemFlags : DWORD; lpFileSystemNameBuffer : PChar; nFileSystemNameSize : DWORD; FSectorsPerCluster: DWORD; FBytesPerSector : DWORD; FFreeClusters : DWORD; FTotalClusters : DWORD; begin lpVolumeNameBuffer := ''; lpVolumeSerialNumber := 0; lpMaximumComponentLength:= 0; lpFileSystemFlags := 0; lpFileSystemNameBuffer := ''; try GetMem(lpVolumeNameBuffer, MAX_PATH + 1); GetMem(lpFileSystemNameBuffer, MAX_PATH + 1); nVolumeNameSize := MAX_PATH + 1; nFileSystemNameSize := MAX_PATH + 1; lpRootPathName := PChar(DriveComboBox1.Drive+':\'); if GetVolumeInformation( lpRootPathName, lpVolumeNameBuffer, nVolumeNameSize, @lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize ) then begin Volume_Name.Caption := lpVolumeNameBuffer; Volume_Serial.Caption := IntToHex(HIWord(lpVolumeSerialNumber), 4) + '-' + IntToHex(LOWord(lpVolumeSerialNumber), 4); File_System_Name.Caption:= lpFileSystemNameBuffer; GetDiskFreeSpace( PChar(DriveComboBox1.Drive+':\'), FSectorsPerCluster, FBytesPerSector, FFreeClusters, FTotalClusters); end; finally FreeMem(lpVolumeNameBuffer); FreeMem(lpFileSystemNameBuffer); end; Sectors_PerCluster.Caption:=IntToStr(FSectorsPerCluster); Bytes_PerSector.Caption:=IntToStr(FBytesPerSector); end; procedure TForm1.DriveComboBox1Change(Sender: TObject); begin UpdateDisk; end; -------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
Текстовая версия | 11.09.2024 4:54 |