Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: Bazooka en Septiembre 04, 2012, 04:43:37 pm
-
Hola, ya me he topado bastantes veces con este tema de que al instalar un programa que tengo en Window7 me llama el cliente que le tira errores y es clavado que por que no es posible escribir los archivos de ese path ni modificar la BD .!!!
Seguro saben ya de que hablo!
Ahora hay alguna forma desde VB6 de asignar la primera vez que se habra de realizar este proceso?
Me refiero sólo a la carpeta de nuestro Soft?
-
Ponla en archivos de programa y listo (?
-
de eso se encarga el instalador o en caso de tener un archivo de configuracion, o tendrias que hacer que tu aplicacion solicite los permisos, copn el msnifest lo podes forzar
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
creo que era algo asi...
-
Ponla en archivos de programa y listo (?
Siempre instalo mis archivos en Archivos de Programas/empresa/soft/
Y aún así si al querer editar un archivo de texto te pide que lo guardes con otro nombre!! Y eso provoca que la aplicacion no funcione como ya explique!
Lo que hago si tengo acceso a la PC le doy click derecho y pongo Seguridad y le asigno Permisos Total a todos los usuarios y asi! si comienza a funcionar!!
-
de eso se encarga el instalador o en caso de tener un archivo de configuracion, o tendrias que hacer que tu aplicacion solicite los permisos, copn el msnifest lo podes forzar
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
creo que era algo asi...
Perdon no entiendo xkiz .. eso donde lo pongo yo utilizo el Setup Factory 9 ?
-
En win7, vista etc se decidio hacerlo de esa manera por un tema de seguridad, tu aplicacion no tiene porque guardar ningun dato dentro de la carpeta de instalacion del programa, para eso hay un carpeta especial que se llama AppData que es donde se tienen que guardar las configuraciones etc. la ruta la podes leer con environ$(LOCALAPPDATA"). Modificar el acceso a la carpeta de tu aplciacion es inseguro y esta mal.
Saludos
-
En win7, vista etc se decidio hacerlo de esa manera por un tema de seguridad, tu aplicacion no tiene porque guardar ningun dato dentro de la carpeta de instalacion del programa, para eso hay un carpeta especial que se llama AppData que es donde se tienen que guardar las configuraciones etc. la ruta la podes leer con environ$(LOCALAPPDATA"). Modificar el acceso a la carpeta de tu aplciacion es inseguro y esta mal.
Saludos
Buenisimo Cobein pero te aseguro que no tenia ni idea de esto!!!
Pero y se supone que la base de datos la tengo que meter ahi entonces?
-
Todo lo que sea configuracion o datos va ahi, solamente los ejecutables, librerias y demas van en la carpeta del programa, es por un tema de seguridad, no se puede modificar nada de un programa si no se tienen los permisos necesarios. Los datos van separados, si miras en esa carpeta vas a ver que todas las aplicaciones guardan algo, esto aparte es util si se quiere hacer un backup, la parte de datos y configuracion esta centralizado en vez de estar mezclada con las aplicaciones.
-
Si entiendo ahora environ$(LOCALAPPDATA") esta variable la leo desde el VB6 ?
-
si, es una variable de entorno, las podes ver todas si vas a la linea de comandos y pones set, esta variable NO va a existir en versiones anteriores como ser XP. Lo mas simple es leer esta variable de entorno y si esta en blanco (porque no existe) usar App.path.
-
Perdon un ejemplito sencillo ?
-
Ahi tenes un ejemplo, en XP por ejemplo te va a devolver la ruta donde esta la aplicacion puesto que AppData no existe en esos sitemas.
Private Sub Form_Load()
MsgBox GetPath
End Sub
Private Function GetPath() As String
Dim sPath As String
sPath = Environ$("LOCALAPPDATA")
If sPath = vbNullString Then sPath = App.Path
If Not Right$(sPath, 1) = "\" Then sPath = sPath & "\"
GetPath = sPath
End Function
Edit: Estaba viendo y en relidad la ruta para configuracion es esta (APPDATA), la que mencionaba anteriormente LOCALAPPDATA se utiliza mas para cosas temporales.
Private Sub Form_Load()
MsgBox GetPath
End Sub
Private Function GetPath() As String
Dim sPath As String
sPath = Environ$("APPDATA")
If Not Right$(sPath, 1) = "\" Then sPath = sPath & "\"
GetPath = sPath
End Function
Aca hay mas informacion: http://environmentvariables.org/Main_Page
-
Buenisimo!!! a todos gracias y me sirvió!!!