Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: lucius en Noviembre 14, 2012, 11:26:31 pm

Título: Ejecutar exe como administrador en win7
Publicado por: lucius en Noviembre 14, 2012, 11:26:31 pm
Hola a todos bueno se me presento esta situacion. Tengo un code que copia un archivo a una determina ruta y el problema esta en que no me copia nada cuando lo ejecuto en win7 ya que lo pretendo copiar a archivos de programa, por otro lado al copiar cualquier archivo a dicha ruta manualmente me sale una ventana donde solicita permisos de administrador pero le doy copiar e igual lo copia claro manualmente pero lo quiero hacer con vb.

Tambien si abro mi exe como administrador copia el archivo sin problemas la idea es ejecutarlo sine estar haciendo click derecho/ejecutar como administrador.
Código: (VB) [Seleccionar]
Dim Destino As String
Dim Origen As String

Public Function CopiaBDPwd(sOrigen As String, sDestino As String, sPwd As String) As String
    ' Base de datos con contraseña
    ' marcar referencia:
    ' Microsoft Access xx.x Object Library
    ' Microsof Jet and Replication objects 2.6 Library
    Dim je As JRO.JetEngine
    Set je = New JRO.JetEngine

    If Len(Dir$(sDestino)) Then Kill sDestino
    je.CompactDatabase "Data Source=" & sOrigen & ";" & _
        "Jet OLEDB:Database Password=" & sPwd, _
        "Data Source=" & sDestino & ";" & _
        "Jet OLEDB:Database Password=" & sPwd

     CopiaBDPwd = "El proceso se completo satisfactoriamente en '" & sDestino & "'."
End Function
Título: Re:Ejecutar exe como administrador en win7
Publicado por: cobein en Noviembre 15, 2012, 07:45:46 pm
Hola, tenes que usar una archivo manifest busca opr aca en el foro que esto se pregunto varias veces, cualquier cosa avisa.
Título: Re:Ejecutar exe como administrador en win7
Publicado por: lucius en Noviembre 16, 2012, 07:30:04 pm
Creo que este http://leandroascierto.com/foro/index.php?topic=1652 , saludos
Título: Re:Ejecutar exe como administrador en win7
Publicado por: Albertomi en Noviembre 16, 2012, 10:06:32 pm
Estimado lucius
 
Agrega el texto en formato XML que índico al final (no agregar las líneas punteadas) en un archivo manifest que tenga el mismo nombre que tu ejecutable;
 
Si no quieres depender de un archivo manifest externo puedes embeberlo dentro ejecutable para esto sigue los siguientes pasos:
1.- Abre el bock de notas agrega el texto XML y guardalo con el nombre Manifest.bin
 
2.- Abre el bock de notas y agrega la siguiente línea:
      1 24 "Manifest.bin"
 
3.- Guarda el archivo con el nombre que con el nombre que gustes pero con la extensión .rc
     Por ejemplo:   App.rc
 
4.- Crea un archivo BAT (.bat) y agrega la siguiente línea (toda en una sola línea)
       “C:\Archivos de programa\Microsoft Visual Studio\VB98\Wizards\RC.EXE" /r /fo App.res App.rc
 
  NOTAS:
     
A.- Respeta las doble comillas, verifica la ruta en la que está en tu PC el ejecutable RC.EXE
     B.- Veras que al final de la línea está el archivo .rc (App.rc) que creamos anteriormente y el nombre del archivo de recurso resultante (App.res)
 
5.- Guarda el archivo
      Por ejemplo: MakeResFile.bat

6.- Ejecuta el archivo MakeResFile.bat

7.- El archivo .res (App.res) resultante del paso anterior lo agregas como un archivo de recurso a tu proyecto VB
 
8.- Luego compilas tu aplicación y listo, OjO el efecto solo se observa en sistemas operativos Windows Vista o superior en Windows XP el funcionamiento es el normal

 
--------------------------------------------------------------------------------
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="6.3.18.0" processorArchitecture="X86" name="sfxcab" type="win32"></assemblyIdentity>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
  <application>     
    <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></supportedOS>     
    <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>
  </application>
</compatibility>
<description>setup</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
        </requestedPrivileges>
    </security>
</trustInfo>
</assembly>
--------------------------------------------------------------------------------
 
 
Saludos, desde algún lugar de Lima-Perú
Título: Re:Ejecutar exe como administrador en win7
Publicado por: Bazooka en Noviembre 16, 2012, 11:37:32 pm
Yo tuve la misma situacion y me aconsejaron leer la variable de entorno %appdata% ycargas una variable gobal para generar o modificar archivos sin problemas. Ahora esto no evita el tema de ejecutar el ese como administrador ...
Título: Re:Ejecutar exe como administrador en win7
Publicado por: FCALDERON en Mayo 22, 2016, 11:43:09 am
SALUDOS... he realizado los pasos para embeberlo dentro ejecutable y me da el error de que el Directorio, nombre o label estan incorrecto..

Que estoy haciendo mal?
Título: Re:Ejecutar exe como administrador en win7
Publicado por: Albertomi en Mayo 23, 2016, 07:16:05 pm
Estimado FCALDERON


Por favor, nos adjuntas un screenshot de cómo estás ejecutando y del mensaje de error.




Saludos, desde algún lugar de Lima-Perú
Título: Re:Ejecutar exe como administrador en win7
Publicado por: zxs23 en Mayo 23, 2016, 11:51:24 pm
Hola.
Bueno no entiendo como deberia resolverlo, de momento no me molesta tener que agregar archivos a parte de mi exe, siempre y cuando se ejecute como administrador.

1.-Tengo mi aplicacion de nombre Abogados2016.exe

2.-Aparte tengo mi archivo para darle el aspecto de controles del sistema a mis botones y demas.
Abogados2016.exe.manifest

Código: (VB) [Seleccionar]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" processorArchitecture="*" version="6.0.0.0" name="mash"/>
<description>Enter your Description Here</description>
<dependency>
   <dependentAssembly>
      <assemblyIdentity
           type="win32"
           name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
           language="*"
           processorArchitecture="*"
         publicKeyToken="6595b64144ccf1df"
      />
   </dependentAssembly>
</dependency>
</assembly>

3.-Aqui es donde no entiendo que nombre ponerle al otro archivo manifest para correr en modo administrador seria acaso Abogados2016.bin o tengo que juntar los 2 codigos en un mismo archivo? si es el caso como lo haria?

Código: (VB) [Seleccionar]
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="6.3.18.0" processorArchitecture="X86" name="sfxcab" type="win32"></assemblyIdentity>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
  <application>     
    <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></supportedOS>     
    <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>
  </application>
</compatibility>
<description>setup</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
        </requestedPrivileges>
    </security>
</trustInfo>
</assembly>


Título: Re:Ejecutar exe como administrador en win7
Publicado por: sBio79 en Mayo 24, 2016, 09:57:40 am
y no te seria mas facil ahorrarte, el codigo para ejecutarse como administrador tu exe y mejor en propiedades de tu exe y en la pestaña compatibilidad habilitar la opción de ejecutar como administrador, y asi iniciaria siempre como administrador si necesidad del codigo y de darle click derecho