Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: YAcosta en Septiembre 04, 2013, 03:07:08 pm

Título: Error 52
Publicado por: YAcosta en Septiembre 04, 2013, 03:07:08 pm
Estoy en Windows 7 (todas las pcs de esta red esta en W7)

Como puedo resolver este error?. Ya he detectado que el error ocurre por un tema de privilegios (ya me confundí si la igualdad "permisos = privilegios" es correcta), bueno, uno de los controles de mi aplicativo accede a una carpeta compartida para cargar una foto y al acceder me da error 52.

Ya fui a la PC a la que accedo y di los permisos totales a esa carpeta y el error sigue. La solución momentánea fue poner On Error Resume Next porque solo me salteo el problema de no mostrar una foto asi que no hay daño grave pero no es una buena solución, es solo momentaneo.

Lei por alli que esto se resuelve instalando en todos los terminales donde de el error 52 el Visual Basic 6, esto no lo habia hecho porque pensé que con el instalador del aplicativo era suficiente ya que he instalado de igual forma en otras redes bajo las mismas condiciones (W7/64) y no me presenta este error, lo hare en la tarde. Instalando el Visual Basic 6 completo estaré "tapando" o parchando el problema. Pero la verdad quisiera saber cual seria la mejor solución o saber a ciencia cierta porque me arroja ese error.

Saludos
Título: Re:Error 52
Publicado por: Bazooka en Septiembre 04, 2013, 03:12:55 pm
Y si ejecutas el EXE como Administrador con click derecho Ejecutar como....
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 04, 2013, 04:29:10 pm
Y si ejecutas el EXE como Administrador con click derecho Ejecutar como....

¿Y como se podría hacer eso de forma predeterminada? Es decir, en las pcs clientes solo tengo accesos directos, en la realidad sabemos que el usuario no dara click derecho y ejecutara como administrador, ellos haran doble click como siempre ¿como poder hacer en Windows 7 para que el aplicativo siempre se ejecute como administrador? Voy a ir averiguando esto y ojala esa fuera la solución que en un par de horas confirmare.

Debo agregar que en todas las pc ya les baje el UAC y de las 3 redes con W7 solo en una de ellas me esta pasando esto.
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 04, 2013, 04:32:08 pm
Ok, encontre que con esto se puede hacer
(http://www.conecta-pc.es/images/stories/ejecutar-siempre-administrador-2.jpg)

Pero esto hay que hacerlo al aplicativo que esta en el servidor, espero que tenga efecto en los accesos directos de las PCs terminales.
Título: Re:Error 52
Publicado por: cobein en Septiembre 04, 2013, 04:58:18 pm
Consulta, como administrador no te da error o seguis con el problema igual?
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 04, 2013, 05:44:04 pm
Aun no lo checo, estoy saliendo ya mismo al cliente y llego en hora y media, desde alli podre escribir los resultados.

Adelanto y aclaro el panorama

Hay 3 tiendas, todas las PCs de las 3 tiendas con windows 7/64, las 3 usan exactamente el mismo programa, las 3 les baje el UAC, las 3 con el mismo antivirus, practicamente son clones (rutas, grupos de trabajo, etc), en cada una de las tiendas estoy haciendo lo mismo que siempre hice en XP: poner el aplicativo en la PC que funca de servidor y en las estaciones solo accesos directos.

Ahora, SOLO en una de las tiendas que cuenta con 2 estaciones es donde se genera el error (solo en las estaciones no en el server), en las otras dos tienda la ejecucion es normal sin ejecutarlo como administrador, doble clic y ya.

¿porque me arroja error siendo el mismo SO, mismo aplicativo, mismas rutas, etc etc? y solo se me ocurre que algo o alguien movio algo.

Les cuento en un par de horas como anduvo.
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 04, 2013, 08:13:24 pm
Consulta, como administrador no te da error o seguis con el problema igual?

Ok, ahora si puedo responder. Ya puse como administrador y el problema sigue. Asi que me veo obligado a instalar todo el Vb6 y cruzar los dedos pq eso funcione.  :-)
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 04, 2013, 08:18:15 pm
ok, instale el Vb6 y Sp6 para 64bits y no resulto quiza porque cruce los dedos y soy ateo.

Asi que me metere al codigo a examinar el chiste.
Título: Re:Error 52
Publicado por: raul338 en Septiembre 04, 2013, 08:32:14 pm
Necesariamente acceso directos en las otras PC?

Proba ejecutandolas en esos pc's secundarios...
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 04, 2013, 08:38:55 pm
Si, el mismp problema pasa si uso el aplicativo en el terminal (no acceso directo) e igual se cae.

Ahora tengo problema con el VB6. Es decir ya lo instale todo exactamente como en las otras tiendas (VB6, SP6 e incluso la licencia del DataReport) y cuando levanto el codigo fuente me sale que no esta registrado el Mscomctl.ocx

Estoy queriendo registrarlo pero no levanta....  llame al amigo que instalo los SO y me dijo que todas las 8 pcs las instalo con el mismo disco.

Comento que el domingo ultimo este amigo instalo  W7/64 a todas las 8 pcs (3 tiendas), y luego yo instale mi soft y solo en una tienda me sale este problema.
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 04, 2013, 08:41:02 pm
Agrego un pequeño detalle. El acceso directo no esta reconocible desde el escritorio:
(http://i.snag.gy/2nUss.jpg)

Esto solo en estas pcs del problema, quiza sirva ese dato.  Ya probe con rehacer el acceso directo.
Título: Re:Error 52
Publicado por: E N T E R en Septiembre 04, 2013, 09:01:33 pm
Viste en tadas la maquinas si esta configurado la red de esta forma:

(http://snag.gy/l2Hwc.jpg)

yo tambien tube mas o menos similar a ese problema y resulta que estaba como esto:

(http://snag.gy/ezH4O.jpg)

Tambien cuando compartis la carpeta tiene que estar asi:

(http://snag.gy/akdAX.jpg)
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 04, 2013, 09:39:12 pm
Si enter, esta igual ambas ventanas. Le seguiré dando vueltas.
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 04, 2013, 09:44:35 pm
Aunque no consigo acceder a esa ultima ventana que muestras.

La carpeta que comparto se llama Imagenes
(http://i.snag.gy/BdKLG.jpg)
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 04, 2013, 09:51:04 pm
Y cuando comparto no se activa el boton compartir dejandome habilitado solo la opcion de Compartir Avanzado.
(http://i.snag.gy/64IwT.jpg)
Título: Re:Error 52
Publicado por: ssccaann43 en Septiembre 06, 2013, 01:40:58 am
Estimado Yvan...!

Tengo ya un poco de trabajo recorrido con varios clientes mios los cuales usan WIN7 64Bit... Perdonen lo que escribire acá, pero es la mierda más dolorosa que en mi vida me he encontrado, te tira unos malditos errores que son inesperados, y opte por hacerme una copia de WIN7 32Bit, respaldar donde tocaba, e instalar mi App..! VOALA, me tardaba más pero mi rostro de satisfacción matando al maldito de 64 Bit, no tiene precio...! Jaja...! Por lo cual te recomiendo comiences a usar 32Bit, copialo en un DVD y te encargas de instalarlos en tus clientes de 64Bit..!
Título: Re:Error 52
Publicado por: E N T E R en Septiembre 06, 2013, 12:05:13 pm
Mira yo tengo tambien un cliente con 3 pc todos con win7 64. Tambien tube el mismo problema que no podia mostrar las fotos de mi articulo por que me daba ese error 52. El error 52 da por que no encuentra el archivo. Y para compartir las carpetas yo hago de esta forma.

(http://snag.gy/F0eBT.jpg)


Después de esto te salta una ventana y ahi en el combo hay que elegir Todos y darle clic al boton Agregar, despues cuando agregas Todos darle nivel de permiso Lectura y Escritura.

(http://snag.gy/fPVUR.jpg)

Tiene que quedar asi.

(http://snag.gy/tCRql.jpg)

Despues compartir y listo.

Saludos ojala te sirva amigo.

Título: Re:Error 52
Publicado por: wolf_kof en Septiembre 06, 2013, 02:30:54 pm
Click Derecho al Icono del Acceso directo o al ejecutable.


Propiedades


Propiedades Avanzadas

Marcas Iniciar como Administrador

Aceptar

Aceptar


Y Listo
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 06, 2013, 04:46:02 pm
Estimado Yvan...!

Tengo ya un poco de trabajo recorrido con varios clientes mios los cuales usan WIN7 64Bit... Perdonen lo que escribire acá, pero es la mierda más dolorosa que en mi vida me he encontrado, te tira unos malditos errores que son inesperados, y opte por hacerme una copia de WIN7 32Bit, respaldar donde tocaba, e instalar mi App..! VOALA, me tardaba más pero mi rostro de satisfacción matando al maldito de 64 Bit, no tiene precio...! Jaja...! Por lo cual te recomiendo comiences a usar 32Bit, copialo en un DVD y te encargas de instalarlos en tus clientes de 64Bit..!

Hola Miguel, lamentablemente no puedo aplicar esa solución, en algun momento tuve la oportunidad de exigir que pongan 32bits pero no lo hice porque hace dos años instale mi sistema en un Seven/64 y hasta hoy sin problemas, solo que esa vez todos los terminales son XP. y por esa razón no insisti, no esperaba tener mas sorpresas , hoy ya no puedo exigir que cambien a Win32 las 8pcs porque ya estan usándolas en otras tareas, tampoco puedo hacer el cambio en la tienda del problema porque la pregunta natural seria ¿Como puede funcionar tu mismo programa perfectamente en 2 tiendas y no en 1?

Ni modo papa, debo seguir insistiendo, sino fuera que mi mismo programa si funciona ok en 2 tiendas no insistiria tanto. Hoy mismo en la tarde estoy retomando al tema.
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 06, 2013, 04:47:28 pm
Mira yo tengo tambien un cliente con 3 pc todos con win7 64. Tambien tube el mismo problema que no podia mostrar las fotos de mi articulo por que me daba ese error 52. El error 52 da por que no encuentra el archivo. Y para compartir las carpetas yo hago de esta forma.

Después de esto te salta una ventana y ahi en el combo hay que elegir Todos y darle clic al boton Agregar, despues cuando agregas Todos darle nivel de permiso Lectura y Escritura.


Tiene que quedar asi.

(http://snag.gy/tCRql.jpg)

Despues compartir y listo.

Saludos ojala te sirva amigo.

Gracias amigo, no habia probado la forma que me comentas, voy a hacerlo asi y ojala se acabe el problema.
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 07, 2013, 02:48:09 am
Esa opción no salia por nada asi que tuvimos que formatear la maquina, luego de eso ya salio la opcion tal como la muestras Enter. Pero grande fue mi sorpresa al ver que el error 52 seguia.
Quise resolverlo trabajando con las fuentes en esa maquina pero seguia el problema del msconctl.ocx. Yo estuve trabajando con las fuentes siempre en una virtual. Pase las fuentes al seven de mi casa y alli continue, al parecer alli movi sin percatarme la ruta de registro de ese ocx y por eso no podia abrirlo en la pc del cliente. Ahora supongo que tendré que desregistrar y volver a registrar...
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 07, 2013, 02:13:19 pm
Bueno, ahora estoy generando el exe desde mi casa y probando por teamviewer en la pc del cliente. Estoy poniendo msgboxes para ver en que linea exactamente se truena y la encontré, esta es la parte de código:

Código: (VB) [Seleccionar]
Private Sub procCargarFoto()
IdFoto = Val(lblMPR_ID)

MsgBox ("Linea de codigo 1") 'borrar esto
MsgBox (memGlobalRutaImagen & IdFoto & ".jpg")  'borrar esto

MiFoto = DIR(memGlobalRutaImagen & IdFoto & ".jpg")  'AQUI EXACTAMENTE SE CAE.
MsgBox ("Linea de codigo 2")   'borrar esto

If Len(MiFoto) > 0 Then
   Pic.Picture = LoadPicture(memGlobalRutaImagen & MiFoto)
   MsgBox ("Linea de codigo 3")  'borrar esto
   Pic.Visible = True
Else
   Pic.Picture = frmGraficos.Pic.Picture
   MsgBox ("Linea de codigo 4")  'borrar esto
   Pic.Visible = True
End If
End Sub

El programa me da dos msgbox y cae
Me da el de Linea de Codigo 1
y este otro:
(http://i.snag.gy/Od39j.jpg)

No llega a msgbox de Linea de Codigo 2.

Asi que la linea del problema es:

MiFoto = DIR(memGlobalRutaImagen & IdFoto & ".jpg") 'AQUI EXACTAMENTE SE CAE.

En este ejemplo la foto no existe y evaluo que si no existe le asigno al picture otra imagen. Esto siempre ha funcionado bien... hasta esta tienda, incluso funciona en las otras 2 tiendas hallan o no halla fotos.

Tengo datos en las variables memGlobalRutaImagen y en IdFoto. En esta linea uso la funcion DIR y esa es la culpable en esta tienda (no en las otras tiendas).

Ahora ¿Porque trona DIR? Con Dir verifico la existencia de un archivo y almaceno en la variable MiFoto un string.

Dir hace conflicto con ESTE W7??? porque recuerden que en otras dos tiendas con red este modulo funciona perfectamente.
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 07, 2013, 02:57:42 pm
Aclaro que no tengo activado el Microsoft Scripting Runtime, y es que sin tenerlo activado me funciona en todos los XP y en 2 tiendas con Seven.

¿Que tiene este Seven que me ocasiona el problema?
Título: Re:Error 52
Publicado por: E N T E R en Septiembre 07, 2013, 03:14:48 pm
Que raro che yo para asegurarme ahora puse para probar en mi pc todas con win7 64 y este es el code que uso.

Código: (VB) [Seleccionar]
Dim xFoto As String

Public Function FileExists(Filename As String) As Boolean
    FileExists = (Dir(Filename, vbNormal Or vbReadOnly Or vbHidden Or vbSystem Or vbArchive) <> "")
End Function

Private Sub Command1_Click()
   
    xFoto = App.Path & "\IMAGENES\" & ListView1.SelectedItem.SubItems(3) & ".jpg"
           
    If FileExists(xFoto) Then
        Picture1.Picture = LoadPicture(xFoto)
    Else
        Picture1.Picture = LoadPicture (App.Path & "\IMAGENES\default.jpg")
    End If
   
End Sub

Lo que hago es cargar el nombre del archivo que esta alojado en mi bd, lo cargo en un listview todos los nombre y segun vaya haciendo click sobre unos de los item cargo en la variable xFoto y con la funcion FileExists compruebo si existe, si no existe cargo un jpg que se llama default.jpg que si o si va estar por que cuando instalo mi sistema me aseguro que ese este ahi.
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 07, 2013, 03:40:44 pm
Bueno papa, gracias por el dato pero creo que voy a apelar a la mariconada. Siempre fui enemigo del "On Error Resume Next" pero esta vez lo usare porque esa parte de código no genera ningún daño en las transacciones cuando hago esto:
(http://saryamaya.files.wordpress.com/2011/04/no-oigo-no-veo-no-digo.jpg)

Y el código ya funciona bien en esa tienda, carga las fotos cuando hay y no las carga cuando no hay poniendo la foto de "sin foto". Aun me gustaría saber porque el DIR en esta PC me ocasiona el error 52.
Título: Re:Error 52
Publicado por: cobein en Septiembre 07, 2013, 07:37:15 pm
Si vos en esa maquina pones win + r y ejecutas la ruta del msgbox se abre la imagen? si el caso es que no existe probaste poniendo la ruta a ver si se abre? pregunto para ver si tenes permisos y todo funciona como se supone.

Saludos
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 07, 2013, 08:16:16 pm
Es decir, cuando no existe imagen la variable tiene una cadena vacia y por eso uso Len, si esta vacia le asigno una imagen que tengo en memoria.
Fijate que esto es de locos (por decir algo) desde la maquina terminal llego a la imagen y no solo eso, la imagen la puse yo desde el terminal hacia la maquina que apunto (la que funca de servidor), por tanto tengo permisos para grabar o borrar.

El Windows 7 que se uso para instalar es el mismo disco de las otras 2 tiendas.

Creo que el problema recae en la funcion Dir en que no me queda claro porque en algunas maquinas funca y porque en estas no.

Aqui en el mundo encontre a alguien que le paso algo similar. Esta en ingles y el traductor de google mucho no me ayudo

http://www.vbforums.com/showthread.php?592071-RESOLVED-Windows-7-and-the-DIR-command
Título: Re:Error 52
Publicado por: cobein en Septiembre 08, 2013, 01:28:09 pm
No se cual pueda ser el problema, podrias usar el api PathFileExists a ver si el problema persiste.

http://msdn.microsoft.com/en-us/library/windows/desktop/bb773584(v=vs.85).aspx
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 08, 2013, 01:31:57 pm
Ok, voy a probar esa funcion (¿Existe eso para VB6? supongo que si), tengo aun una version del proyecto sin el On Error Resume Next pero por mientras lo he dejado en cliente asi ya que para ellos la solucion esta dada, para mi no, y quisiera sacarme el clavo en este tema.

Gracias
Título: Re:Error 52
Publicado por: E N T E R en Septiembre 08, 2013, 02:11:21 pm
Esta en ingles pero con el traductor se entiende.

http://technet.microsoft.com/en-us/library/ee844140%28v=ws.10%29.aspx (http://technet.microsoft.com/en-us/library/ee844140%28v=ws.10%29.aspx)
http://stackoverflow.com/questions/8812879/vb6-application-on-windows-7-cannot-access-mapped-drives (http://stackoverflow.com/questions/8812879/vb6-application-on-windows-7-cannot-access-mapped-drives)
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 10, 2013, 01:46:41 pm
Igual en esos enlaces no veo que tenga que ver con la función DIR, considera que el UAC lo quite totalmente, lo lleve hasta abajo y aun así seguía el problema solo en 2 PCs. Ya hasta estoy pensando que tenga que ver con algun hardware porque practicamente todo esta clonado y esas dos tienen un comportamiento diferente.
Título: Re:Error 52
Publicado por: cobein en Septiembre 10, 2013, 02:25:08 pm
Ivan, acabo de replicar lo que comentas aca, el error se da con rutas inexistentes y cuando pones el path de un directorio sin la barra al final. Por otro lado veo que si usas una ruta inexistente tarda mucho un volver y dar error. PathFileExists  por otro lado no tiene esos problemas, yo lo reemplazaria.

Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long

Private Sub Form_Load()
    Debug.Print PathFileExists("path")
End Sub
Título: Re:Error 52
Publicado por: YAcosta en Septiembre 10, 2013, 03:45:22 pm
Hola Cobein. Te comento, la ruta si existe ya que desde que instalo creo la carpeta C:\SistemaQuentas\Imagenes, ahora, no me he fijado con lo del \ al final en mi codigo, creo que no tengo esa barra... pero siendo el mismo aplicativo en ambas tienda ¿?... sin embargo igual voy a observar el \ al final para la tienda del problema.

Con todo igual mejor sigo tu recomendación de usar PathFilesExists estimado.

Muchas gracias.