Programa C # Elevate en tiempo de ejecución

Tengo un programa C # en el que quiero que ciertas funciones requieran una contraseña de administrador. Para resolver esto, comencé otra instancia de la aplicación como un proceso elevado y le pasé argumentos de línea de comandos para que el proceso sepa qué tarea tiene que realizar.

Process proc = new Process();
proc.StartInfo.Arguments = "PARAMETERS HERE");
proc.StartInfo.FileName = Application.ExecutablePath;
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.Verb = "runas";
proc.Start();

Esto funciona bien, sin embargo, tengo un pequeño problema. Acabo de notar que el mensaje de UAC que aparece para comenzar el nuevo proceso muestra no solo el nombre y la ruta de la aplicación,pero también los parámetros de la línea de comando que se le pasan. De esta forma, el usuario puede ver los parámetros que se pasan y pasar directamente los argumentos derun comando ocommand prompt.

Hay alguna forma de prevenir esto ? ¿O un mejor enfoque para elevar un programa en ejecución?

Respuestas a la pregunta(2)

Su respuesta a la pregunta