Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №1

.cpp
Скачиваний:
30
Добавлен:
01.05.2014
Размер:
3.29 Кб
Скачать
// Defines the entry point for the console application.
//

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <iostream.h>
#include <conio.h>
#include <LMCONS.H>

#define maxDisks 4
void Show( ULONGLONG N )
{
    int Buf[100];
	for(int i=0;N>0;i++)
	{   
	  Buf[i] = (int)N % 10;
	  N = N / 10;
	}
	for(int j=i-1;j>=0;j--)
	  cout << Buf[j]; 
	  cout << endl;
}



int main(int argc, char* argv[])
{

	int choice;
	Show(12);
	do{
	    
		system("cls");
		cout<<"1. Get Computer Name\n";
		cout<<"2. Get System Info\n";
		cout<<"3. Get Logical Drive Strings\n";
        cout<<"   Get Volume Information\n";
		cout<<"4. Exit\n";
		cout<<"Enter your choice: ";
		cin>>choice;
		char Buf[MAX_COMPUTERNAME_LENGTH + 1];
        DWORD Size = MAX_COMPUTERNAME_LENGTH + 1;
        LPSYSTEM_INFO SI = new SYSTEM_INFO();
        char Drives[maxDisks*4+1];
		int Len, i;
        UINT DriveType;
		char VolumeName[101], BufFS[101];
	    DWORD SerialNumber, Temp, FileSF;
        ULARGE_INTEGER FreeSpace, TotalSpace, TotalFreeSpace;
		switch(choice){
			case 1: 
				system("cls");
		        GetComputerName( Buf, &Size );
	            cout << "MAX_COMPUTERNAME_LENGTH = " << MAX_COMPUTERNAME_LENGTH << endl; 
            	cout << "Computer Name: " << Buf << " (Length=" << Size << ")" << endl;
                getch();
			    break;
            case 2: 
				system("cls");
	            GetSystemInfo( SI );
                cout << "Processor Type: " << SI->dwProcessorType << endl;
                cout << "Processor Arc.: " ;
              	switch(SI->wProcessorArchitecture) {
            		case PROCESSOR_ARCHITECTURE_INTEL: cout << "INTEL" << endl;
					}

				getch();
				break;
            case 3: 
				system("cls");				 
                Len = GetLogicalDriveStrings( maxDisks*4+1, Drives );
	            if(Len > maxDisks*4) 
		           Len = maxDisks*4; 
	               cout << Len << endl;
	            for(i=0;i<Len;i++){
		            if(i % 4 == 0){ 
	                   cout << Drives+i << " - ";
		               DriveType = GetDriveType( Drives+i );
		               switch (DriveType) {
		               case DRIVE_REMOVABLE: cout << "Floppy disk" << endl; 
			           break;
		               case DRIVE_FIXED: cout << "Hard disk" << endl; 
			           break;
	                   case DRIVE_CDROM: cout << "CD-ROM" << endl;
					   }
		               
		               if( DriveType == DRIVE_FIXED )
		               if( GetDiskFreeSpaceEx( Drives+i, &FreeSpace, &TotalSpace, &TotalFreeSpace ) ){
		                   cout << "FreeSpace = "; Show( FreeSpace.QuadPart );
		                   cout << "TotalSpace = "; Show( TotalSpace.QuadPart );
		                   cout << "TotalFreeSpace = "; Show( TotalFreeSpace.QuadPart ); 
							}
					   if(GetVolumeInformation( Drives+i,VolumeName, 100,&SerialNumber,&Temp,&FileSF,BufFS,100 ) )
						{    
							cout << "Volume Name: " << VolumeName << endl;  
							cout << "FileSystem: " << BufFS << endl;  
							}
						} 
					}
		        	cout << endl;
					getch();
				    break;

			case 4: break;
			        default: cout<<"Error";
				    getch();
		}
	}while(choice !=4);
 	return 0;
}