Şu anda devam eden süreci yükseltmenin mümkün olduğuna inanmıyorum. Windows Vista'da, anladığım kadarıyla, başlatma sırasında bir işleme yönetici ayrıcalıklarının verildiği yerleşiktir. UAC kullanan çeşitli programlara bakarsanız, her bir yönetimsel eylemin gerçekleştirilmesi gerektiğinde aslında ayrı bir işlem başlattıklarını görmelisiniz (Görev Yöneticisi biri, Paint.NET diğeridir, ikincisi aslında bir .NET uygulamasıdır. ).
Bu sorunun tipik çözümü, yükseltilmiş bir işlemi başlatırken komut satırı argümanlarını belirlemektir (abatishchev'in önerisi bunu yapmanın bir yoludur), böylece başlatılan işlem yalnızca belirli bir iletişim kutusunu görüntülemeyi bilir ve bu işlem tamamlandıktan sonra çıkılır. Tamamlandı. Bu nedenle, yeni bir işlemin başlatıldığı ve ardından çıkıldığı kullanıcıya neredeyse hiç fark edilmemeli ve aynı uygulama içinde yeni bir iletişim kutusu açılmış gibi görünmelidir (özellikle de ana pencereyi yapmak için bir bilgisayar korsanlığınız varsa) yüksek süreç, ana sürecin bir alt öğesi). Yükseltilmiş erişim için UI'ye ihtiyacınız yoksa, daha da iyisi.
Vista'da UAC'nin tam bir tartışması için, konuyla ilgili makaleyi tam olarak görmenizi tavsiye ederim (kod örnekleri C ++ 'dadır, ancak C #' da çoğu şeyi yapmak için WinAPI ve P / Invoke kullanmanız gerekeceğinden şüpheleniyorum. neyse). UAC uyumlu bir program tasarlamak önemsiz olmaktan uzak olsa da, umarım şimdi en azından doğru yaklaşımı görüyorsunuz ...