none
Problemas al guardar archivos

    Question

  • Buena les explica actualmente tengo un Source de una aplicación, esta se encarga de verificar y descargar archivos desde mi web funciona sin problema, el inconveniente que presento es que si coloca la aplicación en un directorio cualquiera funciona sin problema, pero si intento usarla desde una carpeta de sistema como lo es archivos de programas me da un error y cierra la aplicación, solo lo puedo ejecutar sin problema en modo de administrador, lo que quiero es hacer que al invocar la aplicación solicite el permiso UAC para ejecutarse como administrador he intentado buscar solución y no he conseguido, debido a que la aplicación debo distribuirla no basta con saber la solución del problema sino saber como corregirlo es decir agregarle algún código que al invocarla pida que se ejecute como administrador uso actualmente VB 2008 de antemanos gracias!!!
    Friday, January 21, 2011 10:12 PM

Answers

  • Para que el programa te pida ejecutarse como administrador:

    Click derecho sobre el proyecto en el Explorador de Soluciones. Seleccionar "Propiedades".

    En la pantalla de propiedades, en la pestaña "Application", pulsar el botón "View UAC Settings". Esto te abre el archivo app.manifest.

    En la parte donde dice requestedExecutionLevel level="asInvoker", cambia el "asInvoker" por "requireAdministrator" (lo puedes copiar y pegar del comentario que hay más arriba).

    Ya está. Recompila el programa, y al arrancarlo desde el .exe te pedirá la elevación de privilegios. Si lo intentas ejecutar en depuración desde dentro del Visual Studio, te elevará los privilegios del Visual Studio completo.

     

    Saturday, January 22, 2011 9:26 AM

All replies

  • Para que el programa te pida ejecutarse como administrador:

    Click derecho sobre el proyecto en el Explorador de Soluciones. Seleccionar "Propiedades".

    En la pantalla de propiedades, en la pestaña "Application", pulsar el botón "View UAC Settings". Esto te abre el archivo app.manifest.

    En la parte donde dice requestedExecutionLevel level="asInvoker", cambia el "asInvoker" por "requireAdministrator" (lo puedes copiar y pegar del comentario que hay más arriba).

    Ya está. Recompila el programa, y al arrancarlo desde el .exe te pedirá la elevación de privilegios. Si lo intentas ejecutar en depuración desde dentro del Visual Studio, te elevará los privilegios del Visual Studio completo.

     

    Saturday, January 22, 2011 9:26 AM
  • Thx por la respuesta se que es así la solución común pero olvide mencionar que el sourse es nativo de vb 2005 por lo cual el comentario no me aparece y no tiene la misma estructura es asi:

    <?xml version="1.0" encoding="utf-8"?>

    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">

        <security>

          <applicationRequestMinimum>

            <PermissionSet ID="FullTrust" Unrestricted="true" />

            <defaultAssemblyRequest permissionSetReference="FullTrust" />

          </applicationRequestMinimum>

        </security>

      </trustInfo>

    </asmv1:assembly>

    Al modificar por el que comun mente aparece en un proyecto nuevo la aplicación no se ejecuta que es este y es el que me quiere decir que modifique

     

    <?xml version="1.0" encoding="utf-8"?>

    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

      <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>

      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">

        <security>

          <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">

            <!-- Opciones del manifiesto de Control de cuentas de usuario

                 Si desea cambiar el nivel de Control de cuentas de usuario de Windows, reemplace el 

                 nodo requestedExecutionLevel por alguno de los siguientes.

     

            <requestedExecutionLevel  level="asInvoker" uiAccess="false" />

            <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

            <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

     

                Si desea utilizar la virtualización de archivos y del Registro para la compatibilidad 

                con versiones anteriores, elimine el nodo requestedExecutionLevel.

            -->

            <requestedExecutionLevel level="asInvoker" uiAccess="false" />

          </requestedPrivileges>

        </security>

      </trustInfo>

    </asmv1:assembly>


    no se si existe una manera de integrarlos para colocar la linea que hace funcionar el pedido de privilegios de administrador o otra forma de solicitarla porque si simplemente pongo

    <?xml version="1.0" encoding="utf-8"?>
    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
          <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            <!-- Opciones del manifiesto de Control de cuentas de usuario
                 Si desea cambiar el nivel de Control de cuentas de usuario de Windows, reemplace el 
                 nodo requestedExecutionLevel por alguno de los siguientes.

            <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
            <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
            <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

                Si desea utilizar la virtualización de archivos y del Registro para la compatibilidad 
                con versiones anteriores, elimine el nodo requestedExecutionLevel.
            -->
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
          </requestedPrivileges>
        </security>
      </trustInfo>
    </asmv1:assembly>

    me da este mensaje

    Error 1 ClickOnce does not support the request execution level 'requireAdministrator'. Launcher

    pues ya me he roto la cabeza y solamente se me ocurre incompatibilidad por la conversión  de vb2005 a vb2008

    Sunday, January 23, 2011 11:01 PM
  • Buenos dias ya pude solucionar era un error tonto tenia activado el ClickOnce y mientras este activo no elevaba al desactivarlo pude usar la función THX ^^
    Tuesday, January 25, 2011 12:28 PM