Pregunta

Estoy trabajando en una pequeña aplicación en VB.NET.El programa necesita privilegios de administrador para realizar algunas tareas.¿Hay alguna forma de solicitar privilegios de administrador durante la ejecución del programa?

¿Cuál es la forma general de cambiar la cuenta de usuario bajo la cual se ejecuta la aplicación?

¿Fue útil?

Solución

Existen varios métodos según sus necesidades.Algunos detalles se dan en los requisitos del desarrollador de aplicaciones para UAC.

  1. Incluya un manifiesto UAC que haga que su programa requiera privilegios de administrador al inicio.
  2. Utilice uno de los métodos sugeridos para invocar una elevación para quedarse sin proceso.Uno de los mejores es usar el apodo de elevación COM y CoCreateInstanceAsAdmin para llamar a métodos en un objeto COM que se ejecuta como administrador.Posiblemente sea complicado conseguir que funcione en VB.Net.Aunque lo hice funcionar bien en C++.
  3. Otro método correcto es aislar las partes de su código que necesitan privilegios de administrador en una aplicación que use un manifiesto UAC para requerir privilegios de administrador.En ese caso, no es necesario que su aplicación principal se ejecute como administrador.Cuando necesite privilegios de administrador, deberá invocar la aplicación externa.

Otros consejos

Puede especificar esto en el archivo de manifiesto de su aplicación.

Verificar este enlace y este enlace y este enlace también.

 Try
                    Dim procInfo As New ProcessStartInfo()
                    procInfo.UseShellExecute = True
                    procInfo.FileName = 'Filename here
                    procInfo.WorkingDirectory = ""
                    procInfo.Verb = "runas"
                    Process.Start(procInfo)
                Catch ex As Exception
                    MsgBox(ex.Message.ToString(), vbCritical)
                End Try
            End If

La forma más sencilla de hacerlo es hacer clic en la pestaña Proyecto -> Agregar formulario de Windows -> archivo .XML -> asígnele un nombre (nombre del programa).manifest -> pegue este código en este enlace en él (gracias JDOConal) -> luego haga clic derecho en el nombre de su proyecto en el cuadro del explorador de soluciones a la derecha y presione propiedades -> en la primera pestaña seleccione manifiesto y luego el archivo .manifest que creó -> compilar = ¡listo!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top