Немного об использовании ресурсов (часть первая)
Использование ресурсов при создании диалогов в наше время сильно сократилось, поскольку появились такие среды как Microsoft Visual Studio, RAD Studio, QT и пр. Поэтому в данной статье я не буду охватывать данную возможность. Но есть вещи, создаваемые с помощью ресурсов , которые до сих пор используются часто. Это возможность установить иконку для EXE файла, строки, манифест, меню, а так же упаковка иконок, изображений, звуков в секцию ресурсов. Ресурсы используются только под управлением системы Windows. В FreeBasic обрабатываются сторонней утилитой GoRC Resource Compiler , которая все же идет в поставке с компилятором. Данная утилита обрабатывает текстовый файл с расширением RC и преобразует его в двоичный RES файл. RES файл как и другие объектные файлы линкуются на этапе создания EXE файла.
Для установки своей иконки для EXE файла нужно создать RC файл с содержанием:
100 ICON "Иконка.ico"
В данном случае 100 - идентификатор, может быть другим. Используется для возможного дальнейшего доступа к ресурсу в программе. ICON - тип ресурса. И далее идет имя иконки с полным путем к нему. В данном случае иконка расположена в одной папке с RC файлом.
Сохранить файл RC с любым именем.
И скомпилировать примерно так:
fbc -s gui 1.rc 2.bas
В итоге EXE файл теперь имеет вашу собственную иконку.
------------
Манифесты могут использоваться для улучшенного вида ваших контролов, для запуска файлов с правами администратора и может еще чего...
Так для создания улучшенного вида контролов нужно создать файл с расширением XML такого вида:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="Company.Product.Name" type="win32" /> <description></description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly>
А для запуска EXE файлов с привилегиями администратора с таким
содержанием:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <description>Admin program</description> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
В файле RC пишем примерно следующее:
1 24 "xpmanifest.xml"
И компилируем так же как описано выше.