Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/117: Рейтинг темы: голосов - 117, средняя оценка - 4.83
64 / 64 / 10
Регистрация: 26.06.2010
Сообщений: 332

Манифест

27.06.2013, 14:50. Показов 24645. Ответов 56
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Поначалу у меня была проблема с drag and drop в lisbox, но так, как тема ушла далеко в сторону, я решил создать другую тему уже конкретно по манифесту.
В процессе своих поисков информации по манифестам в целом я нашел 3 отличных источника:
1)

3)

Исследовав эти 3 источника я сделал следующее:

1) Создал в блокноте файл vista.manifest c таким кодом:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestversion="1.0">
 <assemblyIdentity
 version="2.0.0.0"
 processorArchitecture='*'
 name="Student LAN Manager"
 type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
 <security>
  <requestedPrivileges>
   <requestedExecutionLevel level="requireAdministrator"/>
  </requestedPrivileges>
 </security>
 </trustinfo>
</assembly>
, сохранив в UTF-8.

2) Создал в блокноте файл vista.rc со строкой:

XML
1
1 24 "vista.manifest"
3) Перекинул оба файла и ярлык brcc32 в одну папку.

4) Перетащил файл vista.rc на ярлык brcc32.

В итоге должен был получиться файл vista.res, однако ничего не произошло.
Итак, что же я сделал неправильно?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.06.2013, 14:50
Ответы с готовыми решениями:

манифест
Постоянно компилится манифест в программу , как убрать? delphi xe3

Манифест Windows XP
Кинул в Dtamodule1. Манифест ХР все стало в стили ХП как теперь отключить этот стиль :) . Удаление пиктограмки манифеста с формы не...

манифест
Всем привет! Ребят хочу собрать исполняемый джарник. В фал манифеста пишу: Main-Class: Zxcv.main Так же скомпилировал байт...

56
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
02.07.2013, 17:18
Студворк — интернет-сервис помощи студентам
Ты получается имнем Res файла ошибся и у тебя программа немогла его просто найти наверно.
С другой стороны Res файл как бы тут особо и ненужен чтоб в негоодин файл тока засунуть, но с другой стороны тогда возникнет проблема каким способом его подключать тогда к проекту...

И вобще вся эта возня мне нужна тока чтобы прога получила права Админа! У тебя программа получает эти права?
Если нет то и мне смысла нету это все городить.
0
64 / 64 / 10
Регистрация: 26.06.2010
Сообщений: 332
02.07.2013, 17:22  [ТС]
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
С другой стороны Res файл как бы тут особо и ненужен чтоб в негоодин файл тока засунуть, но с другой стороны тогда возникнет проблема каким способом его подключать тогда к проекту...
Ни черта не понял.

Цитата Сообщение от NIKOLAYY Посмотреть сообщение
У тебя программа получает эти права?
Да.
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
02.07.2013, 17:30
Пост от UI прочитай )))

РуНет завален бредовыми ответами о том, что я прямо ОБЯЗАН, оказывается, был запихать это в ресурсы. Прекрасно без этого работает...

Просто я сам воще не люблю Res файлы если в них нет особой необходимости, хотя как то давно картинки ложил туда и потом бросил, картинку можно и так вытащить в программу без Res этих. Да и этот манифест тоже как-то можно я думаю.
0
64 / 64 / 10
Регистрация: 26.06.2010
Сообщений: 332
02.07.2013, 17:32  [ТС]
Да, дело было в неадекватном brcc32 из Delphi 7. Brcc32 2007 Delphi скомпилировал мне .res файл. Но всё равно вылазит ошибка "Unable to create process".
0
64 / 64 / 10
Регистрация: 26.06.2010
Сообщений: 332
02.07.2013, 17:35  [ТС]
angstrom, ваш rc.res работает, а мой нет. Посмотрите, пожалуйста.
Вложения
Тип файла: rar manif.rar (1.0 Кб, 15 просмотров)
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
02.07.2013, 18:03
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от _CyberHedgehog_ Посмотреть сообщение
Убежденный, а можно поподробнее, с примерами? Я с манифестами до этого времени не работал. Не совсем представляю себе, что писать в этих элементах.
Полноценный манифест (application manifest) должен иметь примерно следующий вид:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?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="x86"
        name="Company.Product.Module"
        type="win32">
    </assemblyIdentity>
    
    <description>Description of application.</description>
    
    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Microsoft.Windows.Common-Controls"
                version="6.0.0.0"
                processorArchitecture="x86"
                publicKeyToken="6595b64144ccf1df"
                language="*">      
            </assemblyIdentity>
        </dependentAssembly>
    </dependency>
 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel
                    level="requireAdministrator"
                    uiAccess="false">                    
                </requestedExecutionLevel>
            </requestedPrivileges>
        </security>
    </trustInfo>
 
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></supportedOS>
            <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>
        </application>
    </compatibility>
 
    <application xmlns="urn:schemas-microsoft-com:asm.v3">
        <windowsSettings>
            <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
        </windowsSettings>
    </application>
 
</assembly>
assemblyIdentity - это информация о сборке, в данном случае тип сборки (win32/.net),
имя, номер версии, а также поддерживаемая архитектура процессора (x86/amd64).

description - опциональный элемент, описание сборки, нужен в основном только для
отображения во всяких assembly viewer-ах, т.е. просмотрщиках манифестов и сборок.

dependency - опциональный блок, описывающий зависимости от других сборок, которые
должны быть загружены. В данном примере в зависимостях прописана библиотека
элементов управления common-controls, включающая визуальные стили.
Для консольных приложений она не нужна.

trustInfo - опциональный блок, описывающий уровень прав, который необходим программе
для работы. Возможные значения: asInvoker, highestAvailable и requireAdministrator.

compatibility - опциональный блок, появившийся в Windows 7. В этом блоке должны быть
перечислены идентификаторы целевых операционных систем, для которых была разработана
программа. Известные на сегодняшний момент значения:
Windows Vista - {e2011457-1546-43c5-a5fe-008deee3d3f0}
Windows 7 - {35138b9a-5d96-4fbd-8e2d-a2440225f93a}
Windows 8 - {4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}

В Windows 7 и выше, если данный блок отсутствует или в нем нет идентификатора версии
системы, в которой запущена программа, для некоторых функций будет задействована эмуляция
поведения предыдущих версий Windows. Это сделано для поддержки обратной совместимости.
Например, в реализации функции GetOverlappedResult на Windows Vista есть известный баг,
приводящий в некоторых случаях к ее некорректному поведению. В Windows 7 его исправили,
однако для софта, написанного во времена Vista и эксплуатирующего эту особенность,
оставлена возможность сохранить старое поведение. Также без данного блока возможны
различные сообщения всяких помощников по совместимости программ, особенно на Windows 8.

dpiAware - опциональный блок, появившийся в Windows Vista.
Здесь указывается, что программа протестирована на разных мониторах и будет корректно
отображаться на разных настройках DPI (dot per inch, количество точек на дюйм).
Если данного блока нет, то при запуске в системе с большим размером DPI все оконные
элементы программы будут растянуты, что приведет к их "размыванию".
Для консольных программ данный блок не нужен.

Цитата Сообщение от _CyberHedgehog_ Посмотреть сообщение
Единственно плохо, что у вас манифест v3 а мне нужно v2, я читал где-то, что v3 не будет работать на xp, а v2 работает на xp и выше.
На Windows XP некоторые форматы манифестов могут привести к синему экрану при запуске программы.
Я с этим тоже столкнулся, в результате чего перепробовал различные вариации манифестов.
Формат манифеста, приведенный выше, работает без проблем на все системах от XP до Windows 8,
включая серверные редакции, так что можете смело пользоваться.

Ссылки по теме:
Про манифесты в целом - Manifests
Блок compatibility - App (executable) manifest
Поддержка High DPI - Writing High-DPI Win32 Applications
Поддержка визуальных стилей - Enabling Visual Styles
Статья в базе знания Microsoft, описывающая проблемы манифестов на Windows XP - KB 921337
Вот здесь руководство по написанию UAC-совместимых приложений для Windows Vista и выше -
Windows Vista Application Development Requirements for User Account Control Compatibility
7
64 / 64 / 10
Регистрация: 26.06.2010
Сообщений: 332
02.07.2013, 18:24  [ТС]
Убежденный, отлично. Моей ошибкой было то, что я писал информацию о своём проекте в dependency вместо assemblyIdenty. И я только скомпилировал свой первый рабочий манифест. Спасибо огромное, за исчерпывающий ответ.
0
angstrom
02.07.2013, 19:16
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
был ли тот в архиве файл с правами Админа?
Да.
Цитата Сообщение от _CyberHedgehog_ Посмотреть сообщение
не будет работать на xp
Работает и в XP и Win7 - проверено.
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
02.07.2013, 22:09
2) Создать файл .rc в том же блокноте с содержанием "1 24 Имя манифеста.расширение"
В общем одни ошибки все бестолку, создавал:

"1 24 man.manifest"
"1 24 man.manifest.rc"
1 24 "man.manifest.rc"
"1 24 man.rc"
1 24 "man.manifest"
1 24 man.manifest
'1 24 man.manifest'
'1 24 man.manifest'
'1 24 man.rc'
1 24 'man.rc'

И еще десятки вариантов, файл который делаю в блокноте называется у меня man.rc там внутри него я переписал все что выше написано, надоело писать наугад, Скажи что точно писать в нем если знаеш?

----------------------------------------------

Ближе к делу имя и расширение- сделаем им имена и расширения прямо тут!
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
02.07.2013, 22:16
Скрин с програмки редактора ресурсов, и постоянно он на ошибки указывает!...
Миниатюры
Манифест  
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
02.07.2013, 22:30
По-моему, никаких кавычек быть не должно.
1
angstrom
02.07.2013, 23:12
Скрин rc-файла + содержимое манифеста. Куда уж понятней?
Миниатюры
Манифест  
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
02.07.2013, 23:18
Цитата Сообщение от FIL Посмотреть сообщение
По-моему, никаких кавычек быть не должно.
Ну да это верно оказалось.
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
02.07.2013, 23:25
Цитата Сообщение от angstrom Посмотреть сообщение
Скрин rc-файла + содержимое манифеста. Куда уж понятней?
Я его создал, вроде правильно все, Res файл появился иначе думаю он бы и несоздался.

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

Я через бат.файл компилировал , так ошибки видны какие возникают- на картинке видно что без ошибок откомпилировало. Хотя проще я понял просто rc файл на brcc32 натянуть.
Миниатюры
Манифест  
0
angstrom
02.07.2013, 23:31
Можно и с помощью bat-файла. У меня расширение rc "привязано" к brcc32.
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
02.07.2013, 23:44
Цитата Сообщение от angstrom Посмотреть сообщение
Можно и с помощью bat-файла. У меня расширение rc "привязано" к brcc32.
Понятно. У меня вот такой еще вопрос, я когда зажожу с учетки Админа я могу переименовывать удалять, премещать и сохранять в папках и дириктоиях "Програмфайлы" и прочих дирикториях, а сейчас даже с созданным этим манифестом -не могу этого сделать я имею ввиду программа не может.когдая захожу с учетки Гость и запускаю ее.
Это так и должно быть?
0
angstrom
02.07.2013, 23:47
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
захожу с учетки Гость и запускаю ее
И чего ожидалось, что учётка переключится в Админа?
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
02.07.2013, 23:54
Цитата Сообщение от angstrom Посмотреть сообщение
И чего ожидалось, что учётка переключится в Админа?
Ну не то что бы учетка переключится в Админа а хотя бы учетка (моя программа в учетке) Гость приобретет права Админа!

Или не , это и в принципе невозможно?
0
angstrom
02.07.2013, 23:57
Выставь для "гостя" права админа и будет возможно, но тогда зачем нужен "гость"?
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
02.07.2013, 23:59
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
У меня вот такой еще вопрос, я когда зажожу с учетки Админа я могу переименовывать удалять, премещать и сохранять в папках и дириктоиях "Програмфайлы" и прочих дирикториях, а сейчас даже с созданным этим манифестом -не могу этого сделать я имею ввиду программа не может.когдая захожу с учетки Гость и запускаю ее.
Это так и должно быть?
А что у Вас прописано в манифесте ? requireAdministrator ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.07.2013, 23:59

Манифест
Не подскажите, как прилепить manifest к проекту?

Ругается на манифест
Опубликовал приложение. При запуске exe файла, выдает следующие... Как можно решить проблему? Помню, ничего особенного не делал, все как...

Не собирается манифест
Доброго времени суток. Добавляю rc, заполняю сорсом манифеста, линкую его в .pro (у меня creator), но при сборке mingw постоянно возопит...

Не подключает манифест
В среде Visual Studio 2010 создал Empty project, набрал вот этот код: #include &lt;Windows.h&gt; #define ID_MYBUTTON 1 //...

Что такое манифест?
Доброго времени суток. Microsoft Visual C++ 2008 Express Edition компилит и запускает все нормально. Но exe разбухает каким-то манифестом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru