현재 실행중인 프로세스를 향상시킬 수 있다고 생각하지 않습니다. 내가 이해하는 바와 같이 시작시 프로세스에 관리자 권한이 부여되는 것은 Windows Vista에 내장되어 있습니다. UAC를 활용하는 다양한 프로그램을 살펴보면 관리 작업을 수행해야 할 때마다 실제로 별도의 프로세스를 실행하는 것을 볼 수 있습니다 (작업 관리자는 하나, Paint.NET은 다른 하나, 후자는 실제로 .NET 응용 프로그램입니다). ).
이 문제에 대한 일반적인 해결책은 상승 된 프로세스를 시작할 때 명령 줄 인수를 지정하는 것입니다 (abatishchev의 제안은이 작업을 수행하는 한 가지 방법입니다). 이렇게하면 시작된 프로세스가 특정 대화 상자 만 표시 한 다음이 작업이 완료된 후 종료됩니다. 완료되었습니다. 따라서 새로운 프로세스가 시작되었다가 종료되었다는 사실을 사용자가 거의 알아 차릴 수 없으며, 동일한 앱 내에서 새 대화 상자가 열린 것처럼 표시됩니다 (특히 해커가 메인 창을 만들려면 상위 프로세스의 하위 프로세스). 상승 된 액세스를위한 UI가 필요하지 않은 경우 더욱 좋습니다.
Vista에서 UAC에 대한 전체 토론을 보려면 주제에 대한 기사 를 통해이 문서 를 참조하는 것이 좋습니다 (코드 예제는 C ++로되어 있지만 C #에서 대부분의 작업을 수행하려면 WinAPI 및 P / Invoke를 사용해야 할 것 같습니다. 어쨌든). UAC를 준수하는 프로그램을 설계하는 것은 결코 쉬운 일이 아니지만 이제 최소한 올바른 접근 방식을 봤기를 바랍니다.