نمایش نتایج 1 تا 4 از 4

نام تاپیک: تغییر حالت اجرای نرم افزار

  1. #1
    کاربر دائمی آواتار persia_hrn
    تاریخ عضویت
    آذر 1390
    محل زندگی
    شیراز
    پست
    145

    تغییر حالت اجرای نرم افزار

    با سلام خدمت اساتید محترم ,

    آیا امکان این هست که نرم افزاری که به صورت نرمال اجرا شده در زمان اجرا به حالت Administrator تغییر وضعیت بده ؟ یعنی نرم افزار ابتداً به صورت نرمال اجرا بشه و در صورت نیاز وقتی اجرا هست به سطح Admin بره ؟

    من خیلی جستجو کردم ولی چیزی پیدا نکردم ، امکان اجرای نرم افزار ابتداً به صورت RunAsAdministrator رو میدونم و مشکلی باهاش ندارم ولی به دلایلی نمیخوام از همون اول به صورت Admin اجرا بشه . اگر امکانش هست لطفاً یه راهنمایی بفرمائید ، اگر هم نه که اطلاع بدید ممنون میشم .

    با تشکر از همکاریتون

  2. #2

    نقل قول: تغییر حالت اجرای نرم افزار

    بله. شما میتونید برنامتون در ابتدا بصورت عادی و در بین راه بصورت ادمین باز نمایید.
    برای این منظور کافیه هر زمان که نیاز به این مورد داشتید، برنامتون رو در مد ادمین باز کنید و برنامه جاری رو ببندید.
    کدهای مورد نیاز در لینک زیر هست:
    https://stackoverflow.com/questions/...uac-admin-duri


  3. #3
    کاربر دائمی آواتار persia_hrn
    تاریخ عضویت
    آذر 1390
    محل زندگی
    شیراز
    پست
    145

    نقل قول: تغییر حالت اجرای نرم افزار

    جناب آقای Mask از توجهتون ممنونم

    من یه برنامه نوشتم که توی اتوران اجرا میشه و در قسمتی از برنامه کدهای زیر رو نوشتم :
    Reg:=TRegistry.Create;
    Reg.RootKey:=HKEY_CURRENT_USER;
    if Reg.KeyExists('\Software\Microsoft\Windows\Current Version\Policies\Explorer\')=False then
    begin
    ShellExecute(Handle, 'runas', '.\CReg.exe', nil, nil, SW_SHOWNORMAL);
    end
    else
    begin
    Loop:=Reg.ReadInteger('NoDriveTypeAutoRun');
    if Loop<>4 then ShellExecute(Handle, 'runas', '.\CReg.exe', nil, nil, SW_SHOWNORMAL);
    end;


    همونطور که میبینید در خط سوم کدبالا من شرطی رو گذاشتم که در صورت عدم وجود کلید رجیستری یه برنامه جانبی اجرا بشه و در غیر این صورت اگر کلید مورد نظر وجود داشت ، متغیر Loop رو مساوی Value مربوطه کنه و بعد چک کنه که اگر Value مخالف عدد 4 بود باز اون نرم افزار جانبی اجرا بشه .
    کار اون نرم افزار جانبی اینه که اگر کلید یا Value بالا وجود نداشته باشه یا مغایر 4 باشه اون رو تغییر بده .

    حالا مشکل من اینه که خط سوم کد بالا زمانی که برنامه به صورت نرمال اجرا میشه چه کلید وجود داشته باشه چه نداشته باشه مقدار False رو برمیگردونه و باقی قضایا ، و اگر برنامم رو در حالت ادمین اجرا کنم این دستور درست عمل میکنه .

    توی آدرسی که شما فرستادین و قبلاً مطالعش کرده بودم ، بررسی انجام میشه که UAC ویندوز فعال هست یا نه ؟ البته همون بررسی هم اگر برنامه در حالت نرمال اجرا بشه جواب غلط برمیگردونه !

    به نظر شما مشکلم رو چطور میتونم حل کنم ؟

    البته این توضیح رو بدم که برنامه اصلی رو بدلیل اینکه توی اتوران اجرا میشه نمیخوام در حالت ادمین اجرا کنم و همچنین نمیخوام UAC ویندوز رو غیر فعال کنم .

    ممنون از توجه شما

  4. #4

    نقل قول: تغییر حالت اجرای نرم افزار

    این کد:
    uses ShellApi, ...; 
    function RunAsAdmin(const Handle: Hwnd; const Path, Params: string): Boolean;
    var
    sei: TShellExecuteInfoA;
    begin
    FillChar(sei, SizeOf(sei), 0);
    sei.cbSize := SizeOf(sei);
    sei.Wnd := Handle;
    sei.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI;
    sei.lpVerb := 'runas';
    sei.lpFile := PAnsiChar(Path);
    sei.lpParameters := PAnsiChar(Params);
    sei.nShow := SW_SHOWNORMAL;
    Result := ShellExecuteExA(@sei);
    end;

    procedure TFormMain.RunAddOrRemoveApplication;
    begin
    // Example that uses elevated rundll to open the Control Panel to Programs and features
    RunAsAdmin(FormMain.Handle, 'rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl', '');
    end;




    این لینک
    http://wiki.freepascal.org/Executing_External_Programs


تاپیک های مشابه

  1. سوال: تغییر اندازه فرم در هنگام اجرای نرم افزار
    نوشته شده توسط hamid685 در بخش C#‎‎
    پاسخ: 2
    آخرین پست: سه شنبه 15 بهمن 1392, 05:24 صبح
  2. مبتدی: اجرای نرم افزار با access و ado روی سیستم دیگر و مشکل تغییر آدرس بانک اطلاعاتی
    نوشته شده توسط disiba در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 2
    آخرین پست: شنبه 15 تیر 1392, 10:15 صبح
  3. پاسخ: 5
    آخرین پست: سه شنبه 23 شهریور 1389, 21:32 عصر
  4. اجرای نرم افزار بدون نصب sql server
    نوشته شده توسط xmazdak در بخش SQL Server
    پاسخ: 10
    آخرین پست: شنبه 16 مهر 1384, 15:54 عصر
  5. اجرای نرم افزار نوشته شده با سی شارپ
    نوشته شده توسط حمیدرضاصادقیان در بخش C#‎‎
    پاسخ: 4
    آخرین پست: یک شنبه 18 اردیبهشت 1384, 22:42 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •