Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2013, 13:45   #1
LomoCoder
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 47
По умолчанию Добавление манифеста через ресурсы

Здравствуйте! Я добавляю манифест в чужой ехе файл с помощью редактирования его ресурсов вот так:
Код:
manifest:='<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+#13#10+
          '<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">'+#13#10+
            '<dependency> '+#13#10+
              '<dependentAssembly>'+#13#10+
                '<assemblyIdentity'+#13#10+
                  'type="win32"'+#13#10+
                  'name="Microsoft.Windows.Common-Controls"'+#13#10+
                  'version="6.0.0.0"'+#13#10+
                  'publicKeyToken="6595b64144ccf1df"'+#13#10+
                  'language="*"'+#13#10+
                  'processorArchitecture="*"/>'+#13#10+
             '</dependentAssembly> '+#13#10+
            '</dependency>'+#13#10+
            '<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">'+#13#10+
             '<security>'+#13#10+
               '<requestedPrivileges>'+#13#10+
                  '<requestedExecutionLevel'+#13#10+
                    'level="asInvoker"'+#13#10+
                    'uiAccess="false"/>'+#13#10+
                  '</requestedPrivileges> '+#13#10+
              '</security>'+#13#10+
            '</trustInfo>'+#13#10+
          '</assembly>';

hUpdateRes := BeginUpdateResource('progaega.exe', False);
UpdateResourceA(hUpdateRes,PAnsiChar(MakeIntResource(24)),PAnsiChar(MakeIntResource(1)),1033,PChar(manifest),length(manifest)*2);
Манифест добавляется, но при запуске отредактированного ехе выдает ошибку:



Подскажите пожалуйста в чем может быть проблема?
LomoCoder вне форума Ответить с цитированием
Старый 11.08.2013, 14:19   #2
Le0n4iko_o
Пользователь
 
Аватар для Le0n4iko_o
 
Регистрация: 11.08.2013
Сообщений: 77
По умолчанию

Что мешает добавить(а если там уже есть манифест) его в ручную а не программно ?
Заюзай утилиту Resource Tuner
перетащи exe и правь манифест, я так понимаю тебе нужно убрать права админа ?

Последний раз редактировалось Le0n4iko_o; 11.08.2013 в 14:22.
Le0n4iko_o вне форума Ответить с цитированием
Старый 11.08.2013, 14:22   #3
LomoCoder
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 47
По умолчанию

Манифеста там нет, по этому и добавляю его. Можно было бы добавить в ручную зачем бы я тогда добавлял его программно?!
LomoCoder вне форума Ответить с цитированием
Старый 11.08.2013, 14:25   #4
LomoCoder
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Le0n4iko_o Посмотреть сообщение
я так понимаю тебе нужно убрать права админа ?
Нет, мне нужно добавить программе стиль винды
LomoCoder вне форума Ответить с цитированием
Старый 11.08.2013, 14:27   #5
Le0n4iko_o
Пользователь
 
Аватар для Le0n4iko_o
 
Регистрация: 11.08.2013
Сообщений: 77
По умолчанию

ну тогда все еще проще, делай как я выше описал. Через программу можно добавить свой манифест в любой не защищенный exe
Le0n4iko_o вне форума Ответить с цитированием
Старый 11.08.2013, 14:29   #6
LomoCoder
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Le0n4iko_o Посмотреть сообщение
ну тогда все еще проще, делай как я выше описал. Через программу можно добавить свой манифест в любой не защищенный exe
Все должно происходить в моей программе
LomoCoder вне форума Ответить с цитированием
Старый 11.08.2013, 14:30   #7
LomoCoder
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Le0n4iko_o Посмотреть сообщение
ну тогда все еще проще, делай как я выше описал. Через программу можно добавить свой манифест в любой не защищенный exe
Все должно происходить в моей программе, если бы я мог обойтись утилитой, то стал бы я мучаться и задавать этот вопрос?
LomoCoder вне форума Ответить с цитированием
Старый 11.08.2013, 15:04   #8
Le0n4iko_o
Пользователь
 
Аватар для Le0n4iko_o
 
Регистрация: 11.08.2013
Сообщений: 77
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  FS: TFileStream;
S,F: Cardinal;
P: pointer;
begin
FS:= TFileStream.Create('C:\1.xml',fmOpenRead);
S:= FS.Size;
GetMem(P,S);
FS.ReadBuffer(P^,S);
F:= BeginUpdateResource(pchar('C:\1.exe'),False);
UpdateResource(F,pchar('Manifest'),pchar('Name'),10,P,S);
//UpdateResource(F,pchar(ResType),pchar(ResName),Res  Lang,P,S);
EndUpdateResource(F,False);
Freemem(P,S);
end;
1.xml в нем прописан мой манифест
Le0n4iko_o вне форума Ответить с цитированием
Старый 11.08.2013, 15:41   #9
LomoCoder
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 47
По умолчанию

И какая разница что мой что ваш код?
LomoCoder вне форума Ответить с цитированием
Старый 11.08.2013, 17:38   #10
LomoCoder
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 47
По умолчанию

Не хочет он ни в какаю принимать манифест
LomoCoder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление данных через форму Полотенчик Microsoft Office Access 1 23.04.2012 10:44
Не могу прикрепить меню через ресурсы WINAPI C++ rengen Visual C++ 3 20.01.2012 16:21
Добавление записи через FIBDataSet Lokos БД в Delphi 13 04.05.2010 12:32
Добавление в автозагрузку НЕ через реестр. Vi_russ Общие вопросы Delphi 2 07.12.2008 19:00
Ресурсы, зачем нужны ресурсы Hallo Обсуждение статей 0 12.12.2006 21:30