PDA

View Full Version : حرفه ای: چرا run as administrator باید بزنیم؟



sajioo
چهارشنبه 16 مهر 1393, 17:13 عصر
سلام دوستان
سوال بنده اینه که یک برنامه طراحی کردم که بر روی کامپیوتر خودم درست اجرا میشه. بر روی برخی دیگر هم همینطور. اما بعضی از کامپیوتر ها وقتی اجرا میشه و قرار مثلا عکسی را لود کنه ارور path میده یعنی اینطور که دسترسی به آدرس مورد نظر مجاز نیست. اگر برنامه در همین کامپیوتر با run as administrator باز کنیم این ارور رو نمیده و کامل کار میکنه.
آیا باید کار خاصی کرد یا در فایل ستاپ عمل خاصی را انجام داد؟ مشکل از کجاست به نظرتان
با تشکر:متفکر:

BORHAN TEC
پنج شنبه 17 مهر 1393, 11:04 صبح
با سلام،
این محدودیت از طرف سیستم عامل اجرا میشه. مثلاً اگر برنامه شما به صورت Run As Admin اجرا نشه و UAC فعال باشه، برنامه نمیتونه در پوشه Program Files فایلی ایجاد کنه یا فایلی رو تغییر بده(البته برای این منظور میشه فایلهای مورد نیاز رو در Program Data ایجاد کرد). برای این که برنامه به صورت ادمین اجرا بشه قبلاً بارها و بارها در این خصوص بحث شده که باید از manifest خاصی استفاده کنید. در زیر روش صحیح انجام این کار توضیح داده شده:
http://barnamenevis.org/showthread.php?196245-Create-Manifest-for-Win7-amp-Vista-UAC-if-Not-Running-Under-Administrative-Rights&highlight=run+as+admin
موفق باشید...

h_mohamadi
شنبه 19 مهر 1393, 08:59 صبح
بهترین روش استفاده از manifest است که exe شما را Run As Admin کند

امیر مهرشاد
شنبه 19 مهر 1393, 18:33 عصر
بهترین روش استفاده از manifest است که exe شما را Run As Admin کند

من یدونه نوشتم ولی خب بازم برای اجرا در یوزر محدود پس ادمین رو میخواد چکاریه خب ؟ راه حل چیه ؟

sajioo
یک شنبه 20 مهر 1393, 08:44 صبح
من یدونه نوشتم ولی خب بازم برای اجرا در یوزر محدود پس ادمین رو میخواد چکاریه خب ؟ راه حل چیه ؟

منم نتونستم . نمیدونم چکارش کنم؟

sajioo
دوشنبه 21 مهر 1393, 10:36 صبح
دوستان چند سوال در خصوص فایل مانیفست
1. اگه این فایل در کنار فایل اجرایی باشه آیا اون کاری که مد نظر انجام میده یا باید کار دیگری هم کرد؟
2. مثلا بخوایم این فایل در ویستا ، 7 و 8 کار بده آیا برای هریک باید یک فایل جدا نوشت؟
3.آیا xe5 خودش امکانی نداره که بشه این فایل رو راحت به برنامه الحاق کرد یا خودش اونو تولید کنه؟
با تشکر

Mask
دوشنبه 21 مهر 1393, 12:41 عصر
از این موردی که نوشتید میشه به این نتجه رسید که اصلا معنا و مفهوم فایل
manifest
رو کامل متوجه نشدید.
من بیشتر توضیح میدم :
نیازی به حضور فایل
manifest
در کنار فایل اجرایی نیست.
فایل
manifest یک فایل اسمبلیست که باید در سورس برنامه اضافه شود .
این فایل خاصیت اجازه دسترسی ادمین را به برنامه شما میدهد.
خارج از روش تولید این فایل که در پستهای زیادی در موردش بحث شده ، من روش ساده تر رو اینجا قرار میدهم.
فایل زیر رو دریافت و در جایی که مینویسم قرار بدید:
مثلا در بدنه MainForm برنامه:





var Form1: TForm1;


implementation



{$R *.dfm}


یا مثلا در بدنه فایل DPR :





program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1};


{$R *.res}


begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;

end.


به این شکل باید به پروژه اضافه کنید :
MainForm :





var Form1: TForm1;


implementation



{$R *.dfm}
{$R Runas.REC}



یا در فایل Dpr







program Project1;


uses
Forms,
Unit1 in 'Unit1.pas' {Form1};


{$R *.res}
{$R Runas.REC}


begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.



دیگه ساده تر از این نمیشد توضیح داد.
124501