Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
20:04:2008, 15:21
|
|
Новенький ![]() Группа: Новенький Сообщений: 1 Регистрация: 20:04:2008 Пользователь №: 16 760 Репутация: 0
|
Вот код программ. Не могли бы вы, пожалуйста, написать, что делает каждая строка кода?
CODE #include <iostream>
#include <windows.h> using namespace std; void DiskInfo(int, LPTSTR); void main() { char buffer[MAX_PATH]; char bufferDrive[256]; char *pch = bufferDrive; int i; int a; GetCurrentDirectory(sizeof(buffer),(LPTSTR)buffer); cout << "Current directory: " <<endl <<buffer << endl << endl; GetSystemDirectory((LPTSTR)buffer,sizeof (buffer)); cout << "System directory: " << endl << buffer<<endl << endl; GetWindowsDirectory((LPTSTR)buffer,sizeof(buffer)); cout << "Windows directory: " << endl << buffer << endl << endl; cout << "------------------------------------------------------------------------------" << endl << endl; GetLogicalDriveStrings(sizeof(bufferDrive),(LPTSTR) bufferDrive); cout << " Available logical drives: " << endl << endl; i=1; while (*pch) { cout << i << " :" << pch << endl; pch = &pch[strlen(pch) + 1]; i++; } cout << endl << "Enter the number of logical drive to see the info about it : "; cin >> a; DiskInfo(a,bufferDrive); getchar(); getchar(); } void DiskInfo(int a, LPTSTR bufferDriveF) { char *pchF = bufferDriveF; int gDriveType; char lpSectorsPerCluster[256]; char lpBytesPerSector[256]; char lpNumberOfFreeClusters[256]; char lpTotalNumberOfClusters[256]; int j=2; while (j<=a && *pchF) { pchF=&pchF[strlen(pchF)+1]; j++; } cout << endl << "Information about " << pchF << " :" << endl << endl; cout << "Drive type: "; gDriveType=GetDriveType(pchF); switch (gDriveType) { case 0: cout << "Unknown type of device" << endl;break; case 1: cout << "This root directory doesn't exist" << endl;break; case 2: cout << "Drive is removable" << endl;break; case 3: cout << "Drive is fixed" << endl;break; case 4: cout << "Drive is remote" << endl;break; case 5: cout << "Drive is CD-ROM" << endl;break; case 6: cout << "Drive is RAM Disk" << endl;break; default: break; } GetDiskFreeSpace(pchF, (LPDWORD)lpSectorsPerCluster, (LPDWORD)lpBytesPerSector, (LPDWORD)lpNumberOfFreeClusters, (LPDWORD)lpTotalNumberOfClusters); cout << "SectorsPerCluster: " << lpSectorsPerCluster << endl; cout << "BytesPerSector: " << lpBytesPerSector << endl; cout << "NumberOfFreeClusters: " << lpNumberOfFreeClusters << endl; cout << "TotalNumberofClusters: " << lpTotalNumberOfClusters << endl; }[/quote] [quote]#include <windows.h> #include <iostream> #include <string> #define MAX_KEY_LENGTH 255 using namespace std; void GetSubKeys(HKEY hKey) { TCHAR subKeyName[MAX_KEY_LENGTH]; DWORD keyLen; DWORD lpcSubKeys=0; DWORD i, lResult; lResult = RegQueryInfoKey( hKey, NULL,//lpClass, NULL,//&lpcClass, NULL, &lpcSubKeys, NULL,//&lpcMaxSubKeyLen, NULL,//&lpcMaxClassLen, NULL,//&lpcValues, NULL,//&lpcMaxValueNameLen, NULL,//&lpcMaxValueLen, NULL,//&lpcbSecurityDescriptor , NULL);//&lpftLastWriteTime); if (lpcSubKeys) { cout << endl << "Number of subkeys: " << lpcSubKeys << endl; for (i=0; i<lpcSubKeys; i++) { keyLen = MAX_KEY_LENGTH; lResult = RegEnumKeyEx(hKey, i, subKeyName, &keyLen, NULL, NULL, NULL, NULL); if (lResult == ERROR_SUCCESS) { cout << i+1 <<": " << subKeyName << endl; } } } } void main() { HKEY hRootKey,hOpenedKey; char sk[255]; string rootKey; cout << "Enter rootKey: "; cin >> rootKey; if (rootKey == "HKEY_CLASSES_ROOT") { hRootKey = HKEY_CLASSES_ROOT; } else { if (rootKey == "HKEY_CURRENT_USER") { hRootKey = HKEY_CURRENT_USER; } else { if (rootKey == "HKEY_LOCAL_MACHINE") { hRootKey = HKEY_LOCAL_MACHINE; } else { if (rootKey == "HKEY_USERS") { hRootKey = HKEY_USERS; } else { if (rootKey == "HKEY_CURRENT_CONFIG") { hRootKey = HKEY_CURRENT_CONFIG; } else { cout << "No such rootKey!" << endl; getchar(); getchar(); exit(1); } } } } } cout << endl << "Enter the subKey: "; cin >> sk; if( RegOpenKeyEx(hRootKey, sk, 0, KEY_READ, &hOpenedKey) == ERROR_SUCCESS ) { GetSubKeys(hOpenedKey); RegCloseKey(hOpenedKey); } else cout << "No such subKey!"; cout << endl; getchar(); getchar(); } Сообщение отредактировал European - 22:04:2008, 10:14 |
|
Сообщение
#1
|
|
![]() |
|
|
21:04:2008, 07:02
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 915 Регистрация: 4:09:2006 Из: Минск Пользователь №: 6 316 Репутация: 31
|
|
|
Сообщение
#2
|
|
|
|
22:04:2008, 10:11
|
|
Новенький ![]() Группа: Новенький Сообщений: 45 Регистрация: 15:04:2008 Пользователь №: 16 634 Репутация: 0
|
Да, а еще каждая строка кода выполняет определенную функцию!! Вот какой я умный {удалено модератором}...
Итак, приступим...: CODE #include <iostream> // деректива препроцессора, подключающая к программе из файла iostream средства связи с библиотечными функциями потокового ввода-вывода
#include <windows.h> // деректива бла бла бла.. ну тут понятно. using namespace std; // смысл этой {удалено модератором} я до сих пор так и не понял..... void DiskInfo(int, LPTSTR); // прототип функции с двумя параметрами нихрена не возвращающую.. void main() // точка входа в программу... { // левая фигурная скобка char buffer[MAX_PATH]; // массив элементов типа char размером MAX_PATH char bufferDrive[256]; // массив элементов типа char размером 256 char *pch = bufferDrive; // указатель типа char на переменную bufferDrive int i; // переменная типа int... int a; // {удалено модератором} еще одна переменная типа int GetCurrentDirectory(sizeof(buffer),(LPTSTR)buffer); // какая-то функция {удалено модератором}... cout << "Current directory: " <<endl <<buffer << endl << endl; // тут мы печатаем то {удалено модератором}, что получили из предидущей функции..., т.е. путь к текущей дериктории GetSystemDirectory((LPTSTR)buffer,sizeof (buffer)); // {удалено модератором}, опять функция... cout << "System directory: " << endl << buffer<<endl << endl; // выводим на экран путь к системной дериктории GetWindowsDirectory((LPTSTR)buffer,sizeof(buffer)); cout << "Windows directory: " << endl << buffer << endl << endl; // выводим на экран путь к дериктории Windows cout << "------------------------------------------------------------------------------" << endl << endl; // тут мы вдаемся в национальную лигу писсимистов и тупо печатаем минусы (-) GetLogicalDriveStrings(sizeof(bufferDrive),(LPTSTR) bufferDrive); // берем какие-то строчки локального драйва.. cout << " Available logical drives: " << endl << endl; // выводим сообщение о том что перед нашим взором щас откроется что-то невероятное.. i=1; // записываем в переменную i значение 1, дальше идет точка с запятой - это означает.. {удалено модератором} не помню ну и буй с ней... while (*pch) // собственно начало цикла.. он продолжается до тех пор, пока указатель указывает на указанную переменную, которая пока еще не содержит 0 ('\0') { // и снова левая фигурная скобка... cout << i << " :" << pch << endl; // выводим на экран i, потом :, потом pch, потом конец строки.. ламеры обычно записывают его как endllll!!! pch = &pch[strlen(pch) + 1]; // странная на первый взгляд комбинация операторов.... интересно что бы она могла означать...... i++; // мой любимый оператор, оператор инкремент) увеличивает значение переменной на единицу)) } // всем известная правосторонняя фигурная скабка!.. cout << endl << "Enter the number of logical drive to see the info about it : "; // программистъ явно страдал словесным поносым, в то время как пытался описать тут то, что хотел передать жестами..... cin >> a; // вводим с клавиатуры переменную 'a' DiskInfo(a,bufferDrive); // функция явно пытается что-то сотворить с жесткий диском... думаю ее надо заремировать... getchar(); // и вот наконец аццкый программер окончательно ввел нас в заблуждение, пытаясь запутать наше подсознание двумя непонятными на первый вхгляд функциями.... что же это!!?? подпрограммы вызова вредоносных объектов!!?? вопрос все еще остается под загадкой......................... getchar(); } ... Всем удачи в освоении столь сильного, и как мне кажется очень простого языка программирования --- C++ !!! C вами был ваш любимый коментатор Антонио!! Сообщение отредактировал European - 22:04:2008, 10:32
Причина редактирования: Удаление мата
|
|
Сообщение
#3
|
|
![]() |
|
Текстовая версия | Сейчас: 28:08:2008 - 05:01 |