سلام دوستان
می خواستم بدانم چگونه می توانم با دلفی تیک Run as admin در ویندز ویستا و 7 را برای یک برنامه بزنم حالا یا با دلفی و یا اگر می شود در اینستال شیلد اگر ویندوز بالاتر از xp بود این کار انجام شود.
طبق عکس زیر
Printable View
سلام دوستان
می خواستم بدانم چگونه می توانم با دلفی تیک Run as admin در ویندز ویستا و 7 را برای یک برنامه بزنم حالا یا با دلفی و یا اگر می شود در اینستال شیلد اگر ویندوز بالاتر از xp بود این کار انجام شود.
طبق عکس زیر
اگه منظورتون اینه که چطوری می تونید کاری بکنید که برنامتون با privilege ادمین اجرا بشه فقط کافیه یه manifest به resource برنامتون اضافه کنید.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
processorArchitecture="X86"
name="DelphiApplication"
version="1.0.0.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" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
ببینید، باید خودتون پیگیر مشکل خودتون باشید، و از سرنخ هایی که بهتون داده میشه، به خوبی استفاده کنید. دو سرنخ در پست قبلی به شما داده شد؛ Manifest و Resource.نقل قول:
ممنونم می شود به من کمی بیشتر کمک کنید جون من مثل شما استاد نیستم و مبتدی هستم.
شما می تونستید برید تحقیق کنید که Resourceها چی هستند، و در دلفی چطور میشه ازشون استفاده کرد. اگر تحقیق می کردید، توی همین سایت چندین مطلب و نمونه کد درباره استفاده از Resourceها و ساختن Resourceها پیدا می کردید.
همچنین می تونستید تحقیق کنید که اصلا Manifest در ویندوز چی هست. مطالب بسیار زیادی در این مورد در اینترنت پیدا می کردید، و می تونستید به راحتی یاد بگیرید که منظور از Manifest چیه، و چطور میشه از یک Manifest در یک برنامه استفاده کرد.
اما به جای این پیگیری ها، 2 پست در این تاپیک، و 2 پست هم در یک تاپیک دیگه ارسال کردید، که کسی بیاد این کار رو براتون انجام بده.
Manifest یک متن XML هست، مثل همونی که در پست 2 تاپیک می بینید. این متن برخی از پیش نیازهای یک برنامه را برای ویندوز مشخص میکنه. این متن میتونه به دو صورت به ویندوز داده بشه، یک حالت اینه که Manifest در داخل فایل EXE به صورت یک Resource ذخیره بشه. حالت دوم هم اینه که Manifest با نام فایل EXE و پسوند manifest در پوشه ایی که فایل EXE قرار داره، قرار داده بشه، مثلا اگر فایل شما اسمش Project1.exe هست، Manifest آن را به صورت یک فایل با نام Project1.manifest در کنارش ایجاد کنید.
به طور عادی نسخه های جدید دلفی (مثل دلفی 2009 و 2010) برای شما Manifest مناسب را به صورت Resource می سازند، و به فایل EXE الصاق می کنند. اما این Manifest الصاق شده سطح دسترسی برنامه را بر روی Admin تنظیم نمیکنه. یک راه برای شما این هست که فایل EXE تولید شده خودتان را با یک نرم افزار کار با Resourceها، مثل XN Resource Editor باز کنید، و Resource مربوط به Manifest را طوری تغییر بدید که در قسمت requestedExecutionLevel، آن level="requireAdministrator" درج بشه.
آیا راهی هست که وقتی برناممون رو کامپایل میکنیم به طور پیش فرض همین طور باشه و نیاز نباشه بطور دستی اینکارو بکنیم؟؟نقل قول:
یک راه برای شما این هست که فایل EXE تولید شده خودتان را با یک نرم افزار کار با Resourceها، مثل XN Resource Editor باز کنید، و Resource مربوط به Manifest را طوری تغییر بدید که در قسمت requestedExecutionLevel، آن level="requireAdministrator" درج بشه.
خودِ دلفی همچین گزینه ایی به شما نمیده. ولی یادم هست یکی دو سال قبل، یک برنامه نویس عرب یک IDE Expert برای این منظور نوشته بود، که میشد با استفاده از آن، Manifest یک پروژه رو ویرایش کرد.. اسم خودش و IDE Expertاش یادم نیست.نقل قول:
آیا راهی هست که وقتی برناممون رو کامپایل میکنیم به طور پیش فرض همین طور باشه و نیاز نباشه بطور دستی اینکارو بکنیم؟؟
البته احتمالا اگر خودتون فایل .Res پروژه رو ویرایش کنید، هم بتونید به این نتیجه برسید.