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

نام تاپیک: نحوه Run as administrator کردن Exe برنامه (بدون UAC Prompt)

  1. #1
    کاربر تازه وارد آواتار nPad.Net
    تاریخ عضویت
    آذر 1388
    محل زندگی
    شیراز
    پست
    56

    نحوه Run as administrator کردن Exe برنامه (بدون UAC Prompt)

    کاربرد:بیشتر برا برنامه های تحت شبکه استفاده میشه که قراره با دسترسی admin برنامه ای رو روی user محدود شده اجرا کنیم!(اون user ی که استفاده میکنید میتونه admin هم نباشه)

    تابع اصلی CreateProcessWithLogonW از advapi32.dll می باشد...



    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.InteropServices;
    using System.Diagnostics;
    namespace ConsoleApplication1
    {

    class Program

    {
    publicconstUInt32 Infinite = 0xffffffff;
    publicconstInt32 Startf_UseStdHandles = 0x00000100;
    publicconstInt32 StdOutputHandle = -11;
    publicconstInt32 StdErrorHandle = -12;
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
    publicstructStartupInfo
    {
    publicint cb;
    publicString reserved;
    publicString desktop;
    publicString title;
    publicint x;
    publicint y;
    publicint xSize;
    publicint ySize;
    publicint xCountChars;
    publicint yCountChars;
    publicint fillAttribute;
    publicint flags;
    publicUInt16 showWindow;
    publicUInt16 reserved2;
    publicbyte reserved3;
    publicIntPtr stdInput;
    publicIntPtr stdOutput;
    publicIntPtr stdError;
    }
    internalstructProcessInformation
    {
    publicIntPtr process;
    publicIntPtr thread;
    publicint processId;
    publicint threadId;


    }
    [DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]


    publicstaticexternbool CreateProcessWithLogonW(


    String userName,
    String domain,
    String password,
    UInt32 logonFlags,
    String applicationName,
    String commandLine,
    UInt32 creationFlags,
    UInt32 environment,
    String currentDirectory,
    refStartupInfo startupInfo,
    outProcessInformation processInformation);
    [DllImport("kernel32.dll", SetLastError = true)]
    publicstaticexternbool GetExitCodeProcess(IntPtr process, refUInt32 exitCode);
    [DllImport("Kernel32.dll", SetLastError = true)]
    publicstaticexternUInt32 WaitForSingleObject(IntPtr handle, UInt32 milliseconds);
    [DllImport("Kernel32.dll", SetLastError = true)]
    publicstaticexternIntPtr GetStdHandle(IntPtr handle);
    [DllImport("Kernel32.dll", SetLastError = true)]
    publicstaticexternbool CloseHandle(IntPtr handle);
    [STAThread]
    staticvoid Main(string[] args)
    {
    StartupInfo startupInfo = newStartupInfo();
    startupInfo.reserved = null;
    startupInfo.flags &= Startf_UseStdHandles;
    startupInfo.stdOutput = (IntPtr)StdOutputHandle;


    startupInfo.stdError = (IntPtr)StdErrorHandle;

    UInt32 exitCode = 123456;

    ProcessInformation processInfo = newProcessInformation();

    String command = @"C:\Windows\System\myApp.exe";// exe morede nazar
    String user = "admin";
    String domain = System.Environment.MachineName;
    String password = "123";
    String currentDirectory = System.IO.Directory.GetCurrentDirectory();
    try
    {
    CreateProcessWithLogonW(
    user,domain,password,(UInt32)1,command,command,
    (UInt32)0,
    (UInt32)0,
    currentDirectory,
    ref startupInfo,
    out processInfo);
    }
    catch (Exception e)
    {
    Console.WriteLine(e.ToString());
    }
    Console.WriteLine("Running ...");
    WaitForSingleObject(processInfo.process, Infinite);
    GetExitCodeProcess(processInfo.process, ref exitCode);
    Console.WriteLine("Exit code: {0}", exitCode);
    CloseHandle(processInfo.process);
    CloseHandle(processInfo.thread);
    }
    }

    }


    موفق باشید
    آخرین ویرایش به وسیله nPad.Net : سه شنبه 04 آبان 1389 در 01:23 صبح دلیل: خوانا شدن کدها

  2. #2
    کاربر دائمی آواتار cardano7
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    کارتون خواب
    پست
    473

    نقل قول: نحوه Run as administrator کردن Exe برنامه (بدون UAC Prompt)

    سلام
    لطفا:
    1- واضح توضیح بدید که صورت مسئله چیه. این کد چی کار می کنه؟
    2- کد را با فرمت منظم اینجا قرار بدید که خوانا باشه.

    ممنون

  3. #3
    کاربر تازه وارد آواتار nPad.Net
    تاریخ عضویت
    آذر 1388
    محل زندگی
    شیراز
    پست
    56

    نقل قول: نحوه Run as administrator کردن Exe برنامه (بدون UAC Prompt)

    نقل قول نوشته شده توسط cardano7 مشاهده تاپیک
    1- واضح توضیح بدید که صورت مسئله چیه. این کد چی کار می کنه؟
    2- کد را با فرمت منظم اینجا قرار بدید که خوانا باشه.

    ممنون
    سلام

    1-از این واضح تر (حتما دیدید که وقتی روی برنامه(exe برنامه) راست کلیک میکنیم دومین گزینه همین گزینه Run as هستش که میتونید برنامتونو تحت دسترسی user های دیگه اجراکنید.به اون دیالوگی که بعد از زدن Run as ظاهر میشه UAC-User Account control میگن)

    2-ویرایش شد(دلیل : کمبود وقت در ارسال مطلب)

    موفق باشید!

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

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