Статьи Советы по Delphi Советы по работе с системой Советы для написания программ-инсталляторов Регистрация программ в меню "Пуск" Windows 95 Как программно создать ярлык? Затенить кнопку «Закрыть» в заголовке формы Копирование файлов Как скопировать все файлы вместе с подкаталогами Удаление каталога со всем содержимым Определение системной информации Как проинсталлировать свои шрифты? Вставить какую-нибудь программу внутрь EXE файла Как написать маленький инсталлятор? Рисую две иконки 32х32 и 16х16, но под NT 32х32 не показывается! Работа с принтером. Система Внешние модули (DLL), нити Советы по работе с реестром. Использование некоторых ключей реестра Работа с реестром в Delphi 1 Объект INIFILES - работа с INI файлами. Советы по работе с графикой Разное Глюки Создание редактора карт в стратегиях типа WarCraft Шпаргалка по ресурсам Windows-32 (для Delphi) Стандартная технология доступа к ресурсам Внутренний формат ресурсов Windows Описание формата ресурсов в MS PE COFF. Дамп памяти (взят из PE.TXT) API Программирование на основе Win32 API в Delphi 1. Введение 2. Существующие решения 3. Принципы построения API-библиотеки 4. Библиотека WinLite 5. Пример программы на основе библиотеки WinLite KOL Состояние проекта KOL FAQ Часто задаваемые вопросы по Borland Delphi Общие вопросы по Delphi и данному FAQ (часть 1) Введение Вопросы общего характера Совместимость Базы данных - Interbase и локальные данные Базы данных — прочие SQL сервера Общие вопросы по Delphi и данному FAQ (часть 2) Базы данных — компоненты и VCL. Компоненты и VCL Общие вопросы по Delphi и данному FAQ (часть 3) Object Pascal и Windows API Разное Полезные хитрости Вопросы по Delphi 1.0 Вопросы общего характера Delphi и Visual Basic Базы данных Object Pascal и Windows API Компоненты и VCL Разное Вопросы по Delphi 2.0 Что нового в Delphi 2.0 по сравнения с Delphi 1.0? Вопросы общего характера Базы данных Object Pascal и Windows API Разное Вопросы по Delphi 3.0 Вопросы общего характера Object Pascal и Windows API Delphi, С++ Builder и базы данных: вопросы и ответы Delphi VCL FAQ
Определение системной информации Часто при создании систем привязки программ к компьютеру или окон типа System Info или About Box необходимо определить данные о пользователе и о системе. Это можно сделать следующим образом (из примеров по Delphi — программа COA):
Procedure GetInfo;
Var
WinVer, WinFlags : LongInt; { Версия Windows и флаги }
hInstUser, Fmt : Word; { Дескриптор }
Buffer : ARRAY[0..30] OF Char; { Буфер под ASCIIZ строку }
begin
hInstUser := LoadLibrary('USER'); { Открыли библиотеку User }
LoadString(hInstUser, 514, Buffer, 30);
LabelUserName.Caption := StrPas(Buffer); { Имя пользователя }
LoadString(hInstUser, 515, Buffer, 30);
FreeLibrary(hInstUser);
LabelCompName.Caption := StrPas(Buffer); { Компания }
WinVer := GetVersion;
LabelWinVer.Caption := Format('Windows %u.%.2u', { Версия Windows }
[LoByte(LoWord(WinVer)), HiByte(LoWord(WinVer))]);
LabelDosVer.Caption := Format('DOS %u.%.2u', { Версия DOS }
[HiByte(HiWord(WinVer)), LoByte(HiWord(WinVer))]);
WinFlags := GetWinFlags;
IF WinFlags AND WF_ENHANCED gt; 0 THEN LabelWinMode.Caption := '386 Enhanced Mode' { Режим }
ELSE IF WinFlags AND WF_PMODE gt; 0 THEN LabelWinMode.Caption := 'Standard Mode'
ELSE LabelWinMode.Caption := 'Real Mode';
IF WinFlags AND WF_80x87 gt; 0 THEN { Сопроцессор }
ValueMathCo.Caption := 'Present'
ELSE ValueMathCo.Caption := 'Absent';
Fmt := GetFreeSystemResources(GFSR_SYSTEMRESOURCES);
ValueFSRs.Caption := Format('%d%% Free', [Fmt1]); { Свободно ресурсов }
{ Свободно памяти}
ValueMemory.Caption := FormatFloat(',#######', MemAvail DIV 1024) + ' KB Free';
end;