Error obteniento Path Corto con APIs en Win10 64bit

Colapsar
X
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar todos
nuevos mensajes

  • Error obteniento Path Corto con APIs en Win10 64bit

    hasta hace un tiempo no había tenido problemas convirtiendo los Path largos (que incluían espacios y otros caracteres especiales) al formato 8.3 (ex: C:\Archivos de Programa\ -> a -> C:\ARCHIV~1\) ya fuera con las APIs GetShortPathNameA o GetShortPathNameW o incluso con la función ShortPath del Scripting.FileSystemObject (scrrun.dll), pero ahora, revisando, todas ellas trabajan a medias, osea, solo convierten el primer nivel, los siguientes quedan largos igual, por ejemplo: "C:\Archivos de Programa\Common Files" queda como "C:\ARCHIV~1\Common Files" haciendo que las llamadas a programas externos por linea de comandos se vuelvan inutiles... adjunto una App de prueba donde están los tres metodos que solía utilizar en mis Aps, si alguien conoce alguna solución a este tema, agradecería pudiera compartirla, he googleado bastante sin lograr encontrar una solución, y pasar estas a VB.Net no está en mis planes, al menos no por ahora....
    Archivos adjuntos
    _____________________________________________
    Sé un poco de todo y mucho de nada....

  • #2
    He hecho pruebas con tu código, y no he hallado ningún problema...
    Te adjunto dos resultados bastante complejos.

    Última edición por J_M_Movilla; 21-08-2018, 09:58 AM. Razón: Ver el siguiente post.
    José María Movilla Cuadrado
    ______________________
    Normas del foro
    www.foro.vb-mundo.com
    www.vb-mundo.com

    Comentario


    • #3
      IMPORTANTE:
      Revisando tu código y comparándolo con el que yo utilizo para obtener el recorte del path, aprecio la enorme diferencia que hay, indudablemente a favor de mi código... como puedes apreciar en el archivo GSPN.rar que te adjunto...
      Archivos adjuntos
      José María Movilla Cuadrado
      ______________________
      Normas del foro
      www.foro.vb-mundo.com
      www.vb-mundo.com

      Comentario


      • #4
        Estimado Movilla:
        Agradecido, pero es lo mismo que yo utilizo (GetShortPathNameA), pero reducido, pero, para variar, tu código no funciona en mi PC, ¿mi PC es el problema?, quizás, a estas alturas (donde solo encuentro más de lo mismo) agradezco enormemente tu interés, voy a probar una Maquina Virtual, si se soluciona el problema, formatearé mi PC y el del Cliente....

        Agradecido, si alguien tuvo el mismo problema y encontró solución, estaré atento...
        Un abrazo a todos

        PD: si Yacosta aparece por estos lados: amigo un abrazo, sabes que le pasó al foro de Leandro? lo abrirá nuevamente?

        Actualización: Es interesante, pero me he dado cuenta de un "Bug" de la API, si la primera carpeta NO tiene espacios, pero la segunda SI, solo convierte el primer nivel; en cambio si tanto la primera Carpeta como la segunda (y tercera, etc.) tienen espacios en sus nombres, las convierte todas sin problemas... osea, me voy a ver obligado a instalar la App en una Ruta con espacios (ej: "C:\Program Files (x86)\VB6 Application\Resources for my App")... será...

        Gracias por leer...
        Última edición por AxioUK; 21-08-2018, 12:53 PM. Razón: Update Test
        _____________________________________________
        Sé un poco de todo y mucho de nada....

        Comentario


        • #5
          Me parece que no van por ahí los tiros... No es la API la que falla, sino tu sistema operativo. Ve el ejemplo.
          Archivos adjuntos
          José María Movilla Cuadrado
          ______________________
          Normas del foro
          www.foro.vb-mundo.com
          www.vb-mundo.com

          Comentario


          • #6
            En que Windows lo ejecutas?
            _____________________________________________
            Sé un poco de todo y mucho de nada....

            Comentario


            • #7
              Tengo equipos con W10, otros con W7 e incluso algún cliente tiene todavía XP (para compilar las aplicaciones para estos clientes, tengo yo una máquina virtual con Xp). En todos funciona perfectamente.
              José María Movilla Cuadrado
              ______________________
              Normas del foro
              www.foro.vb-mundo.com
              www.vb-mundo.com

              Comentario


              • #8
                Originalmente escrito por AxioUK Ver mensaje
                Estimado Movilla:


                PD: si Yacosta aparece por estos lados: amigo un abrazo, sabes que le pasó al foro de Leandro? lo abrirá nuevamente?

                .
                Estimado AxioUK, gusto saludarte y saludar al amigo Movilla, se les extraña.

                Si el foro de Leandro ya esta en vivo.

                Amigo Movilla, ¿Has visto algo del mundo movil? Yo he incursionado usando B4A que tiene una sintaxis muy similar al codigo de VB6 (con ciertos toques de Java) y hace que sea mas facil programar en el.
                --------------------------------
                Si eres agradecido, obtendrás más...

                YAcosta

                Comentario


                • #9
                  Oh, mi querido amigo Yván... Cuánto tiempo sin noticias tuyas... Me alegra tu mensaje.

                  Recuerda que ya hace 9 meses que cumplí los ¡86 años!!! Aunque sigo haciendo algunas cosas (ahora con MySQL), no me creo capacitado para iniciarme en programación para móviles; aunque me encantaría... Por eso entraré a conocer algo de B4A, porque, si tú me lo aconsejas, a buen seguro que me gustará.

                  Abrazo muy fuerte, amigo.
                  José María Movilla Cuadrado
                  ______________________
                  Normas del foro
                  www.foro.vb-mundo.com
                  www.vb-mundo.com

                  Comentario


                  • #10
                    Originalmente escrito por J_M_Movilla Ver mensaje
                    Tengo equipos con W10, otros con W7 e incluso algún cliente tiene todavía XP (para compilar las aplicaciones para estos clientes, tengo yo una máquina virtual con Xp). En todos funciona perfectamente.
                    Confirmado que no es mi equipo, formateado este, instalo Win7 x64 SP1, instalo VB6 SP6, todo OK, dos dias de trabajo full, se deacargan actualizaciones automáticas y paf, todo mal nuevamente, reformateo, instalo Win8.1, VB6 SP6, nuevamente todo OK, un dia de trabajo, actualizaciones automáticas nuevamente y otra vez el mismo cuento, para confirmar mi teoría (soy algo porfiado) reformateo una tercera vez, Win10 x64, VB6 SP6, Apis funcionando, fuerzo las actualizaciones y otra vez Apis al caño... Ahora estoy probando con Maquina virtual si logro identificar la actualizacion maldita... Bueno eso...
                    Saludos a todos.
                    _____________________________________________
                    Sé un poco de todo y mucho de nada....

                    Comentario


                    • #11
                      No termino de comprenderlo...

                      Hazme un favor: Ejecuta el proyecto GSPN que te adjunto. Selecciona un fichero del path más complicado que encuentres y conviértelo... Puedes repetir la selección miles de veces, y no te fallará nunca. Al menos eso es lo que me sucede a mí.

                      Espero me confirmes el resultado, y que sea satisfactorio. Saludos.
                      Archivos adjuntos
                      José María Movilla Cuadrado
                      ______________________
                      Normas del foro
                      www.foro.vb-mundo.com
                      www.vb-mundo.com

                      Comentario


                      • #12
                        Estimado Movilla
                        Yo tampoco comprendía, pero ahora "creo" entender un poco más, por alguna razon se desactiva en mi 2da unidad los nombres cortos, es una funcionalidad del sistema de archivos y no de VB6, que se puede corregir con el comando fsutil, el ultimo adjunto que me enviaste funciona bien en rutas de mi disco C:, no asi en las del disco D:, al buscar mas informacion encontré eso del comado fsutil,hice unas pruebas y voilá! Ahora funciona! En las imagenes podras ver que chequeando el disco D: este no contiene nombres cortos, por eso no convertia nada, en cambio al copiar las carpetas al C: si aparecen los nombres de carpeta equivalentes en formato 8.3
                        Mañana revisare el disco del cliente para verificar esto.

                        Muy agradecido de tu tiempo y tu paz-ciencia...
                        Un abrazo...
                        _____________________________________________
                        Sé un poco de todo y mucho de nada....

                        Comentario


                        • #13
                          Bueno: se confirma el dicho de que "todo tiene arreglo menos la muerte". Me alegra que hayas podido salir del atolladero... Saludo afectuoso.
                          José María Movilla Cuadrado
                          ______________________
                          Normas del foro
                          www.foro.vb-mundo.com
                          www.vb-mundo.com

                          Comentario


                          • #14
                            Originalmente escrito por J_M_Movilla Ver mensaje
                            No termino de comprenderlo...

                            Hazme un favor: Ejecuta el proyecto GSPN que te adjunto. Selecciona un fichero del path más complicado que encuentres y conviértelo... Puedes repetir la selección miles de veces, y no te fallará nunca. Al menos eso es lo que me sucede a mí.

                            Espero me confirmes el resultado, y que sea satisfactorio. Saludos.

                            Que tal mi estimado un enorme gusto saber que sigue adelante, pues le comento que a mi me gusto B4A por el enorme parecido a VB6, si bien es cierto algunas cosas son similar a Java son muy pocas. Por ejemplo para poner en mayúsculas algo en VB6 es:

                            Msgbox(UCase(MiVariable))

                            En B4A el msgobx requiere un parámetro mas, entonces seria:

                            Msgbox(miVariable.ToUpperCase, "Mensaje")

                            y cosas asi.

                            Fijese en la imagen adjunta algo de código que hice en B4A



                            Y básicamente allí leo una tabla almacenada en la BD la cual muestro en una "rejilla".

                            Seria genial que Pablo crease un subforo sobre B4A, en todo caso con gusto estare por aqui para poder ver ese tema. Le mando un fuerte abrazo y le deseo mucha salud

                            aludos
                            --------------------------------
                            Si eres agradecido, obtendrás más...

                            YAcosta

                            Comentario


                            • #15
                              Tienes razón, amigo Yván: He estado "fisgoteando" sobre B4A, y me animo a probarlo. Efectivamente tiene un gran parecido con VB 6.0. Y esto me alegra, porque nunca he visto lógico que Microsoft haya actuado tan despreciativamente con ese producto que continúa con tantos adictos. Hablaré con Pablo para que incorpore el subforo de B4A. Fuerte abrazo.
                              José María Movilla Cuadrado
                              ______________________
                              Normas del foro
                              www.foro.vb-mundo.com
                              www.vb-mundo.com

                              Comentario

                              Trabajando...
                              X