Скачать бесплатно скрипты, Программы, Шаблоны сайтов, Иконки, Кисти фотошоп

Регистрация или вход Главная | Анкета | Рекомендовать | Обратная связь | В избранное | Сделать домашней

Меню по сайту
  • Главная
  • Регистрация
  • Поиск по сайту
  • Форум
  • Конктакты

  • Скрипты
    Графика
    Программы
    Статьи и Учебники
    Разное

    Новости

    Как я уже писала, в процессе разработки наступает момент, когда агентство разработка сайта екатеринбург вроде как чем-то и занимается, а результата не видно. В этот момент руководящие сотрудники ...
    Подробнее

    До встречи Нового Года остались считанные дни, а поэтому для многих россиян главным вопросом предстоящей недели станет вопрос о подарках родным и близким. Что подарить, где купить, а главное, какую су...
    Подробнее

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

    Облачный хостинг Clodo представил новое для российского рынка хостинга решение -- облачное хранилище. Решение предназначено в первую очередь для хранения и распространения статического контента (графи...
    Подробнее

    Непрофессионалу очень сложно сориентироваться в реалиях рынка недвижимости крупнейшего города Сибири. Даже в таком, казалось бы простом деле, как аренда жилья, помощь профессионалов сегодня необходима...
    Подробнее


    Партнеры


    Google
    Сообщения с форума
    ТемыАвторПр.От.Последний
    Полезные скриптыwertock26494bra
    Allgrafica.ruKenT274bra
    неработает ссілка скачиванияvadim15950vadim
    Zoc 4zenzin13040zenzin
    Java АППЛЕТЫGennadiy17120Gennadiy
    Ищу Дрова.sasha61089321150sasha610893
    Не Могу СкачатьMaToKZ19560MaToKZ
    Ссылка Не Работаетsander15620sander
    Стол Заказов. Чтото Ищите Но Не Можете Найти, Вам Сюда!!!KenT1521222ROMAS-MASTER
    Софт Для Раскрутки Сайта!!!dm1z56724ROMAS-MASTER

    Партнеры
    Статьи
    Статьи по программированию на Delphi
    Перейти к Оглавлению »» Раздел статей Программисту »» Статьи по программированию на Delphi »» Как узнать информацию о системе в Delphi
    Как узнать информацию о системе в Delphi

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

    Прежде всего, где хранится эта самая системная инфа? В Реестре, куда мы сможем залезть, добавив модуль Registry в раздел Uses. Версия системы, имя владельца и т.д. имеют следующий адрес: 

    HKEY_LOCAL_MACHINESoftwareMicrosoft WindowsCurrentVersionExplorer

    Или (для Windows NT):
    HKEY_LOCAL_MACHINESOFTWAREMicrosoft Windows NTCurrentVersion

    А информация о системных папках хранится здесь: 
    HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionExplorerShell Folders

    В то же время данные о некоторых системных устройствах хранятся в файле System.ini. Значит, добавим модуль IniFiles, чтобы осуществить чтение информации из этого файла. Таким образом, если вы умеете работать с Реестром и Ini, узнать системную информацию вам будет так же просто, как сделать FORMAT C: COMPLETE из-под загрузочного диска. Изюминка в том, что наше приложение, которое эту инфорнмацию собирает и записывает в лог-файл, будет консольным, и создать его можно через File>New>Other>Console Application.

    program OSInfo;

    uses
    SysUtils,
    Windows,
    Registry,
    IniFiles; //!!

    //ключи реестра, в которых будем искать информацию
    const
    folders = 'SoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders';
    WinVers = 'SoftwareMicrosoftWindowsCurrentVersion';

    var
    F: TextFile; //файл с логом
    SerialNum: PDWord; 
    a: DWord;
    i: integer;
    Drive, WinDir: String;
    buffer: array [0..255] of char;
    ms: TMemoryStatus; 

    //читаем информацию из Реестра
    function WinInfo(Root_Key: HKEY; Key_Open, Key_Read: string): string;
    var
    registry: TRegistry;
    begin
    //если Windows NT, открываем другой ключ
    if ((GetVersion and $80000000)=0) and (Key_Open=WinVers) then
    Key_Open:='SOFTWAREMicrosoftWindows NTCurrentVersion';
    Registry := TRegistry.Create;
    try
    Registry.RootKey := Root_Key;
    Registry.OpenKey(Key_Open, False);
    Result := Registry.ReadString(Key_Read);
    finally
    Registry.Free;
    end;
    //если ничего не найдено, выводим "невозможно определить"
    if Result<>EmptyStr then Result:=Key_read+': '+Result else Result:=Key_read+': невозможно определить';
    end;

    //читаем из System.ini
    function GetDevice(Section, Ident: String): String;
    var inifile: TIniFile;
    begin
    IniFile:=TIniFile.Create(windir+'system.ini');
    result:=IniFile.ReadString(Section,ident,'неизвестное устройство');
    IniFile.Free;
    end;

    begin
    //Узнаем директорию Винды. Она нам еще понадобится
    GetWindowsDirectory(buffer, SizeOf(buffer));
    windir:=buffer;
    AssignFile(F,Windir+'OSInfo.txt'); //Соединямся с файлом лога
    ReWrite(F); //Переходим в начало файла
    WriteLn(F,'Лог создан: '+DateTimeToStr(now));
    WriteLn(F,'');
    //пользователь, версия ОС и т.д.
    WriteLn(F,' О Системе:');
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'RegisteredOwner'));
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'RegisteredOrganization'));
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'ProductID'));
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'ProductKey'));
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'ProductName'));
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'Version'));
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'VersionNumber'));
    //Какой браузер?
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'Plus! VersionNumber'));
    WriteLn(F,'');
    WriteLn(F,' Память:');
    WriteLn(F,'Доступные носители: ');
    //Получаем информацию о дисках
    for i := 0 to 25 do
    if (GetLogicalDrives and (1 shl i)) <> 0 then begin
    Drive:=Char(Ord('A') + i) + ':';
    case GetDriveType(PChar(Drive)) of
    DRIVE_REMOVABLE: WriteLn(F,Drive+' (гибкий диск)');
    DRIVE_CDROM: WriteLn(F,Drive+' (CD-ROM)');
    DRIVE_FIXED: begin
    //находим серийный номер жесткого диска
    new(SerialNum);
    if getVolumeInformation(pChar(Drive),buffer,sizeof(buffer),SerialNum,a,a,nil,0) then
    WriteLn(F,Drive+' (жесткий диск, SN '+Inttostr(SerialNum^)+')');
    end;
    else WriteLn(F,Drive+' (неизвестный диск');
    end;
    end;
    //информация о памяти
    GlobalMemoryStatus(MS);
    WriteLn(F,'Оперативная память: '+FormatFloat('#,###" KB"', MS.dwTotalPhys / 1024));
    WriteLn(F,'Свободно на жестком диске: '+FormatFloat('#,###" байт"',DiskFree(3))); 
    //"3" указывает на диск C:
    WriteLn(F,'Объем жесткого диска: '+FormatFloat('#,###" байт"',DiskSize(3)));
    WriteLn(F,'');
    //узнаем об устройствах из System.ini
    WriteLn(F,' Устройства:');
    WriteLn(F,'Клавиатура: '+getDevice('boot.description','keyboard.typ'));
    WriteLn(F,'Мышь: '+getDevice('boot.description','mouse.drv'));
    WriteLn(F,'Дисплей: '+getDevice('boot.description','display.drv'));
    WriteLn(F,'Хранитель экрана: '+getDevice('boot','SCRNSAVE.EXE'));
    WriteLn(F,'');
    //читаем системные папки из Реестра
    WriteLn(F,' Системные папки:');
    GetCurrentDirectory(SizeOf(buffer), buffer);
    WriteLn(F,'Текущий каталог: '+buffer);

    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'Cache'));
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'ConfigPath'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'Cookies'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'Desktop'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'Favorites'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'Fonts'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'History'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'Local AppData'));
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'MediaPath'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'My Music'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'My Pictures'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'NetHood'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'Personal'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'PrintHood'));
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'ProgramFilesDir'));
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'CommonFilesDir'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'Programs'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'Recent'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'SendTo'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'Start Menu'));
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'StartUp'));
    GetSystemDirectory(buffer, SizeOf(buffer));
    WriteLn(F,'System: '+buffer);
    GetTempPath(Sizeof(buffer),buffer);
    WriteLn(F,'Temp: '+buffer);
    WriteLn(F,WinInfo(HKEY_CURRENT_USER,folders,'Templates'));
    WriteLn(F,WinInfo(HKEY_LOCAL_MACHINE,WinVers,'WallPaperDir'));
    WriteLn(F,'Windows: '+WinDir);
    Close(F); //отсоединяемся от файла
    end.

    Результаты сохранятся в директории Windows в файле OSInfo.txt. Чтобы ознакомиться с ними, вам достаточно открыть этот файл.

    Такое приложение весит 156 кило. А если бы мы создали "нормальную" программу с формой, размер был бы в два-три раза больше.

    Источник: http://delphid.dax.ru


    Дата публикации: 26.01.2006
    Прочитано: 1129 раз


    Дополнительно на данную тему
    Копирование и удаление файлов в DelphiКопирование и удаление файлов в Delphi
    Delphi и Flash. Совмещение несовместимого!Delphi и Flash. Совмещение несовместимого!
    Поговорим о случайных числах в DelphiПоговорим о случайных числах в Delphi
    Создаем гиперссылку в DelphiСоздаем гиперссылку в Delphi
    Смотрим в глубь DLL средствами DelphiСмотрим в глубь DLL средствами Delphi
    Шифрование в DelphiШифрование в Delphi
    Тест скоростных характеристик некоторых компонентов в DelphiТест скоростных характеристик некоторых компонентов в Delphi
    Защита формы паролем реализованная в DelphiЗащита формы паролем реализованная в Delphi
    Уменьшаем размер EXE в 40 раз, или Вся правда о консольных приложениях DelphiУменьшаем размер EXE в 40 раз, или Вся правда о консольных приложениях Delphi
    Поиск файлов на винчестере в DelphiПоиск файлов на винчестере в Delphi
    [ Назад | Начало | Наверх ]
    Статьи для вебмастера и программиста
      Последние статьи   Популярные статьи
    1Продвижение сайта. Распространенные ...  (Прочитано: 1672)
    2Настройка sendmail под Windows  (Прочитано: 1371)
    3Минимальная настройка phpmyadmin для...  (Прочитано: 1217)
    4Минимальная настройка mysql для перв...  (Прочитано: 1268)
    5Бесплатный ДНС Primary и Secondary  (Прочитано: 1315)
    6Основные настройки и защита apache п...  (Прочитано: 1377)
    7Как установить рабочий сервер apache...  (Прочитано: 1445)
    8Подготовка PHP для запуска сервера  (Прочитано: 1235)
    9TCP/IP. Иллюстрированный учебник  (Прочитано: 1243)
    10Учимся ловить скролл  (Прочитано: 5623)
    Как скрыть свой IP  (Прочитано: 53358)
    Взлом паролей Windows за считанные с...  (Прочитано: 27380)
    Используем удаленный рабочий стол в ...  (Прочитано: 23574)
    Обновление BIOS  (Прочитано: 20461)
    Как создать сайт? Советы для новичко...  (Прочитано: 17731)
    Faq Windows NT  (Прочитано: 16383)
    Программы верстки  (Прочитано: 15680)
    О Командах MS-DOS Типы команд MS-DOS  (Прочитано: 15336)
    Привлекательный Web-узел - своими ру...  (Прочитано: 14645)
    10 С чего начинается сайт?  (Прочитано: 12476)
    User Info


    Добро пожаловать,
    Guest

    Регистрация или входРегистрация или вход
    Потеряли пароль?Потеряли пароль?

    Логин:
    Пароль:

    Сейчас онлайн
    ПользователейПользователей: 0
    ГостейГостей: 7
    ВсегоВсего: 7





    Главная | | Темы | Вопросы и ответы | Учебники | Рекомендовать | Обратная связь

    MyScript-V2.ru