示例#1
0
        public override string GetDataRow()
        {
            var ic = CultureInfo.InvariantCulture;

            return(String.Join(",",
                               new []
            {
                base.GetDataRow(), KINJ_AIRFREE.ToString("0.##", ic), UOZ_TCORR.ToString("0.#", ic), DUOZ_REGXX.ToString("0.#", ic), DIUOZ.ToString(ic), JUFRXX.ToString(ic), JFRXX1.ToString(ic), JFRXX2.ToString(ic),
                DELTA_RPM_XX.ToString(ic), DERR_RPM.ToString(ic), PXX_ZONE.ToString(ic), UGB_RXX.ToString("0.##", ic),
                StartFlags.ToString("X2"),
                TWAT_RT.ToString(ic), THR_RT_16.ToString(ic), RPM_RT.ToString(ic), RPM_RT_16.ToString(ic), RPM_THR_RT.ToString(ic), GBC_RT.ToString(ic), GBC_RT_16.ToString(ic),
                KGTC.ToString("0.#", ic), KBARR_GTC.ToString("0.#", ic), DUOZ.ToString("0.#", ic),
                DUOZ_LAUNCH.ToString(ic), LaunchFuelCutOff.ToString(ic), DELAY_FUEL_CUTOFF.ToString(ic), PRESS_RT.ToString(ic), Press.ToString("0.##", ic),
                TARGET_BOOST.ToString("0.##", ic), TURBO_DYNAMICS.ToString(ic), WGDC.ToString(ic),
                Tcharge.ToString(ic), TchargeCoeff.ToString("0.##", ic), FchargeGBC.ToString(ic), KGBC_DAD.ToString("0.##", ic), FchargeGBCFin.ToString(ic), Knock.ToString("X4"),
                KnockFlags.ToString("X2"), MisFireFlags.ToString("X2"), DGTC_DadRich.ToString("0.###", ic),
                TLE_PIN_0_7.ToString("X2"), TLE_PIN_8_15.ToString("X2")
            }));
        }
示例#2
0
        static void Main(string[] args)
        {
            try
            {
                StartFlags    flags = StartFlags.RunAsAdmin;
                List <string> cmds  = new List <string>(args);

                if (cmds.Count > 0 && cmds[0].Equals("-l"))
                {
                    flags = StartFlags.None;
                    cmds.RemoveAt(0);
                }

                if (cmds.Count < 1)
                {
                    Console.WriteLine("[Usage] LaunchAdminProcess [-l] executable [command line]");
                    Console.WriteLine("Specify -l to start process as non-admin");
                    Environment.Exit(1);
                }

                string executable  = cmds[0];
                string commandline = executable;
                if (cmds.Count > 1)
                {
                    commandline = cmds[1];
                }

                using (var proc = LaunchAdminProcess(executable, commandline, flags, CreateProcessFlags.None, @"WinSta0\Default"))
                {
                    Console.WriteLine("Start process {0}", proc.ProcessId);
                    Console.WriteLine("Granted Access: {0}", proc.GrantedAccess);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
示例#3
0
        static NtProcess LaunchAdminProcess(string executable, string cmdline, StartFlags flags, CreateProcessFlags create_flags, string desktop)
        {
            StartAppinfoService();

            using (Client client = new Client())
            {
                client.Connect();
                create_flags |= CreateProcessFlags.UnicodeEnvironment;
                Struct_0 start_info = new Struct_0();
                int      retval     = client.RAiLaunchAdminProcess(executable, cmdline, (int)flags, (int)create_flags,
                                                                   @"c:\windows", desktop, start_info, new NdrUInt3264(GetDesktopWindow()),
                                                                   -1, out Struct_2 proc_info, out int elev_type);
                if (retval != 0)
                {
                    throw new Win32Exception(retval);
                }

                using (var thread = NtThread.FromHandle(new IntPtr(proc_info.Member8.Value)))
                {
                    return(NtProcess.FromHandle(new IntPtr(proc_info.Member0.Value)));
                }
            }
        }