-
Aleksus (09.12.11 12:37) [0]Нужно при запуске приложения получить права администратора для правильной работы приложения в Виндовс 7. Нашел тут статью для VisualStudio: http://forum.vingrad.ru/act-Print/client/printer/f-466/t-332538.html Можно ли это провернуть как-то в Delphi 2010?
-
Anatoly Podgoretsky © (09.12.11 14:25) [1]> Aleksus (09.12.2011 12:37:00) [0]
Там нет ничего на Vx -
P (09.12.11 17:55) [2]
-
Dmitriy (20.12.11 17:47) [3]создаем файл mainifest.rc c одной строчкой внутре:1 24 "Manifest.txt"
создаем файл Manifest.txt - из твоей ссылки
<?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="IsUserAdmin"
type="win32"/>
<description>Description of your application</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Прикручиваем manifest.rc к проекту
в project/options/application убираем флажок use runtime themes
компилируем - ЩАСТЬЕ!!! -
Dmitriy (20.12.11 17:57) [4]ну и да, чтобы темы таки не потерялись, manifest.txt должен выглядеть так:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="MyApplication.Test"
version="1.0.0.1"
processorArchitecture="*"/>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
</assembly>
ну и маленькая добавка - говорим в манифесте, что наша программа знает о существовании 7-ки и висты (можно и убрать) -
Cupryanoff (23.12.13 00:03) [5]
-
brother © (23.12.13 05:11) [6]иди в опу!
-
Подскажите, пожалуйста, сделал файлик. Добавил его к проекту.1 24 "XP.manifest"{$R *.RES}
{$R 'WindowsXP.res' 'WindowsXP.RC'}
begin
Application.Initialize;
Application.Title := 'Process Starter';
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TEditApplicationForm, EditApplicationForm);
Application.Run;
end.
Программа не спрашивает права. Начала анализировать, увидел что Delphi XE 6 добавляет мой манифест в группу .rsrc\1049, а в 1033 прилинковывает дефолтный манифест<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly> -
Разобрался.
Собрал файл ресурсов с кодом языкаbrcc32 -l409 WindowsXP.RC
Всем большое спасибо. -
Vendict_ (24.10.14 09:40) [9]И ещё. Бился два дня с этим.
К примеру вы делаете проект Project1.exe, к нему файл Project1.exe.manifest, его упаковываете в Project1.rc, и дерективой $R включаете в проект
{$R Project1.res Project1.rc}
И Дельфи делает Project.res с вашим манифестом, а потом поверх него Project.res с остальными ресурсами. В итоге ваш манифест затирается.
Вывод. Поменяйте имя выходного res и rc файла. -
Программа для интеграции кастомного манифеста в проекты на Delphi
http://kandiral.ru/delphi/integraciya_manifesta_v_programmu_na_delphi.html -
PhilSoft (11.01.18 19:10) [11]И стоит оставить XPMan где то в Uses как все эти танцы с правами админа становятся бесполезными
-
> brcc32 -l409 WindowsXP.RC
- без локали.rcLANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
1 24 "XP.manifest"
- 1033.rcLANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
1 24 "XP.manifest"
- 1049.rcLANGUAGE LANG_RUSSIAN, SUBLANG_RUSSIAN_RUSSIA
1 24 "XP.manifest" -
Плохиш © (15.01.18 01:41) [13]некроманы зажигают
-
Eraser © (15.01.18 03:02) [14]
> PhilSoft (11.01.18 19:10) [11]
какие танцы, какой XPMan?
очнитесь и посмотрите в календарь!
https://www.dropbox.com/s/at5ab13i3u4r20h/2018-01-15_3-00-26.png?dl=0