Aşağıdaki kod ile bir cmd komutunu çalıştırmak çalışıyorum: Ben yönetici olarak cmd çalıştırmak ve mükemmel çalışıyor ama koşamam zaman komutu yazın Bu komut, yönetici privelages gerektirir Run yükselmiş süreç
ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
cmd.RedirectStandardInput = true;
cmd.RedirectStandardOutput = true;
cmd.RedirectStandardError = true;
cmd.UseShellExecute = false;
cmd.CreateNoWindow = true;
cmd.WindowStyle = ProcessWindowStyle.Hidden;
Process exec = Process.Start(cmd);
exec.StandardInput.WriteLine("sc create \"BaliService\" binPath= \"{0}\\BaliService.exe\"", Directory.GetCurrentDirectory());
Bu uygulama admin olarak. Ben UAC exe her açtığınızda isteyen bir bildirim dosyasına
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Bu konuyla ilgili birden fazla soru gördüm ve bunların hepsi, yüksek bir uygulama altında çalışan herhangi bir işlemin aynı haklara sahip olacağını önermektedir, ancak bu benim için çalışmıyor.
cmd.Verb = "runas";
'u denedim, ancak hiçbir zar.
değiştirmeyi deneyin 'cmd.UseShellExecute' için' TRUE ve 'runas' fiil tutun. – keyboardP
Sadece denedim, ancak bu hatayı aldım. İşlem nesnesinin IO akışlarını yeniden yönlendirmek için UseShellExecute özelliği false olarak ayarlanmış olması gerekir. –
Paranın durduğu yer burası, iki yönden de olamaz. UAC, ayrılmamış bir sürecin yükseltilmiş olanın yeteneklerini hi-jacking etmesini önler. Yönlendirebilmenin tek yolu, önce kendini yükseltmektir. –