Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado 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.
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
-
Hola, tenes que usar una archivo manifest busca opr aca en el foro que esto se pregunto varias veces, cualquier cosa avisa.
-
Creo que este http://leandroascierto.com/foro/index.php?topic=1652 , saludos
-
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ú
-
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 ...
-
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?
-
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ú
-
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
<?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?
<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>
-
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