PDA

View Full Version : Run As Administrator کردن برنامه ها در Delphi XE2



sara66
یک شنبه 20 آذر 1390, 09:11 صبح
سلام ، برنامه ای نوشتم که نیاز به Run As Administrator داره ، قبلا از آموزش زیر استفاده کردم و توی دلفی 7 جواب گرفتم :
http://barnamenevis.org/showthread.php?196245-Create-Manifest-for-Win7-amp-Vista-UAC-if-Not-Running-Under-Administrative-Rights
اما همین برنامه را با XE 2 باز کردم اما Run as Administrator نمیشه ! توی Xe 2 از style هم استفاده کردم ...
مرسی

loo30fer
یک شنبه 20 آذر 1390, 12:37 عصر
کاری نداره که فقط کافیه کد Manifest زیر رو توی یک فایل برای مثال با نام Resurce.manifest رو در درایو C ذخیره کنید

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.1.1.1"
processorArchitecture="X86"
name="Project1.exe"
type="win32"/>
<description>elevate execution level</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
سپس به Project > Options > Application برین و در قسمت Runtime Themes خصوصیت Enable runtime themes رو در حالت Use custom manifest قرار دهید و آدرس فایلی رو که با نام Resurce.manifest در درایو C ذخیره کردین رو بهش بدین.
در آخر که پروژه رو که کمپایل میکنید اگه Delphi رو با دسترسی Administrator اجرا نکرده باشین با خطای Unable to create process: The requested operation requires elevation مواجه میشین چون فایل شما الان دارای دسترسی Administrator هست که در این صورت باید به صورت دستی خودتون فایل کمپایل شدتون رو اجرا کنید.
موفق باشید.

sara66
دوشنبه 21 آذر 1390, 07:49 صبح
مرسی اما مشکل اینجاست که Style برنامه به هم میریزه ! من از style های خود دلفی Xe2 استفاده می کنم و با این کار دیگه اون Style ها کار نمی کنن !

sara66
دوشنبه 21 آذر 1390, 07:53 صبح
دوباره Style را انتخاب کردم درست شد ! اما بعضی جاهای Style هنوز مشکل داره ! مثلا تا قبل قرار دادن Manifest ، پسورد ها با دایره نمایش داده می شدن اما الان ستاره شدن !

loo30fer
دوشنبه 21 آذر 1390, 11:41 صبح
راستش برای خودمم سوال شد که چرا اینطوری میشه احتمال دادم از اون Manifest باشه باهاش کلنجار رفتم تا آخرش تونستم راه حلش رو پیدا کنم به جای اون Manifest که قرار دادم از این Manifest استفاده کنید.
موفق باشید.

<?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="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

sara66
دوشنبه 21 آذر 1390, 12:16 عصر
مرسی درست شد
بعضی مواقع تم برنامه بهم میریزه مثلا وقتی میخوای فرم را ببندی 3 تا کلید روی فرم به شکل بدون تم در میان و ..
این مشکل مربوط به Manifest هست ؟

loo30fer
دوشنبه 21 آذر 1390, 12:25 عصر
خواهش میکنم خوشحالم که تونستم مشکلتون رو حل کنم.
نه نمیتونه به خاطر Manifest باشه در کل چون یک Style به صورت مجزا روی فرم شما اعمال شده این مشکلات بوجود میاد چون تم اصلی ویندوز چیز دیگست این مشکل هم کلا توی تمامی برنامه ها اتفاق میفته برای مثال Yahoo Messenger.
البته من این مشکل رو تابحال توی Delphi XE2 مشاهده نکردم شاید چون از Update2 استفاده میکنم.

Mavix19
یک شنبه 30 دی 1397, 11:55 صبح
سلام

دوستان در نسخه جدید دلفی (10 به بالا) تمامی این موارد خلاصه میشه در یه تیک!

Project > Options > Application > Execution Level -> Require Administator