Ver Mensaje Individual
  #16
Antiguo 16 de septiembre de 2025, 05:29
Jorgeanna
Forero Junior
Última Actividad 25.01.2026 23:59
Posts Posts: 24
Likes enviados Enviados: 0
Likes recibidos Recibidos: 39

hola @fastpho:

Felicitaciones, he probado el script que pasaste y quedo gratamente sorprendido, lo estoy corriendo desde un cliente 32 bits, como asi tambien desde un cliente 64 bits y tambien funciona, no entiendo como puede ser, se me quemaron los manuales, pero FUNCIONA y no deberiamos entonces preocuparnos por el entorno en que se desarrolle el servidorCOM.

Ademas lo he probado en windows 11 y anda perfectamente.

Creo que la magia esta en la configuracion del archivo spec, incorporando las librerias en el mismo, soluciona los problemas de empaquetado de pyinstaller, que no era suficiente con por ejemplo: pyinstaller --onefile --windowed --hidden-import=win32timezone elsisloc.py ya que cada error habia que incorporar las librerias que no detectaba el compilador, IMPECABLE LO TUYO y UN APORTE SIGNIFICATIVO.

Respecto del archivo de texto, hice una mala lectura, vi que guardaba la consulta en un archivo csv y asumi que luego lo leian y no era asi, lo genera, no se el objetivo pero la informacion es tomada del propio return.

Archivo generado al momento de la consulta.
1,"monumental, buenos aires, argentina",-34.5452932,-58.4497385,OK,2025-09-15 23:58:44
1,"bombonera, buenos aires, argentina",-34.6355171,-58.3649163,OK,2025-09-15 23:59:33

Veo que el tema ha tenido muchas lecturas, no veo reportes de si lo estan utilizando o solo leen los post, pero si quieren probar el servidorCOM generado y presentado gentilmente por @fastpho, le dejo un script en vbs para que puedan probar en forma rapida el mismo, y vean la magia de trabajar desde otro lenguaje y utilizar el mundo python:

abre navegador en la ubicacion especificada
64 bits
wscript.exe C:\PyPracticas\fastpro\ localizar_con_mapa.vbs
32 bits
C:\Windows\SysWOW64\wscript.exe C:\PyPracticas\fastpro\ localizar_con_mapa.vbs

Obs. cambiar la ubicacion del script.

Código VB:
  1. ' =================================================================
  2. ' servidorCOM autor: @fastpho:
  3. ' Script: localizar_con_mapa.vbs
  4. ' Propósito: Probar el objeto COM, geocodificar una dirección
  5. ' y abrir la ubicación resultante en un mapa.
  6. ' =================================================================
  7.  
  8. ' --- 1. Declaración de variables ---
  9. Dim objGeo, direccion, resultado, partesResultado
  10. Dim estado, latitud, longitud, mensaje
  11. Dim askToOpenMap, mapURL, shell
  12.  
  13. ' --- 2. Solicitar dirección al usuario ---
  14. direccion = InputBox("Introduce la direccion a geocodificar:", "Geolocalizacion")
  15.  
  16. If direccion = "" Then
  17.     MsgBox "No se ingreso ninguna direccion. El script finalizara.", vbExclamation, "Sin direccion"
  18.     WScript.Quit
  19. End If
  20.  
  21. ' --- 3. Creación del Objeto COM ---
  22. On Error Resume Next
  23. Set objGeo = CreateObject("LocPyCOM.elsCOMObject")
  24. On Error GoTo 0
  25.  
  26. ' --- 4. Verificación y uso del objeto ---
  27. If objGeo Is Nothing Then
  28.     MsgBox "ERROR: No se pudo crear el objeto COM 'LocPyCOM.elsCOMObject'." & vbCrLf & vbCrLf & _
  29.            "Por favor, asegurate de haber registrado el servidor COM.", vbCritical, "Error de Objeto"
  30. Else
  31.     ' Llamamos al método para obtener las coordenadas
  32.    resultado = objGeo.CrearLocalizacion(direccion)
  33.  
  34.     ' Procesamos la respuesta que viene separada por "|"
  35.    partesResultado = Split(resultado, "|")
  36.     estado = partesResultado(0)
  37.  
  38.     If UCase(estado) = "OK" Then
  39.         latitud = partesResultado(1)
  40.         longitud = partesResultado(2)
  41.        
  42.         ' Mostramos el mensaje con el resultado exitoso
  43.        mensaje = "Geocodificacion Exitosa" & vbCrLf & vbCrLf & _
  44.                   "Latitud: " & latitud & vbCrLf & _
  45.                   "Longitud: " & longitud
  46.         MsgBox mensaje, vbInformation, "Resultado"
  47.        
  48.         ' Preguntamos al usuario si desea abrir el mapa
  49.        askToOpenMap = MsgBox("¿Deseas abrir esta ubicacion en un mapa?", vbYesNo + vbQuestion, "Abrir Mapa")
  50.  
  51.         If askToOpenMap = vbYes Then
  52.             ' Construye una URL de Google Maps moderna y confiable
  53.            mapURL = "https://www.google.com/maps/search/?api=1&query=" & latitud & "," & longitud
  54.            
  55.             ' Abrimos la URL en el navegador por defecto
  56.            Set shell = CreateObject("WScript.Shell")
  57.             shell.Run mapURL
  58.             Set shell = Nothing
  59.         End If
  60.     Else
  61.         ' Mostramos el mensaje de error devuelto por el objeto COM
  62.        mensaje = "La geocodificación fallo." & vbCrLf & vbCrLf & _
  63.                   "Mensaje del servidor: " & partesResultado(1)
  64.         MsgBox mensaje, vbExclamation, "Resultado con Error"
  65.     End If
  66.  
  67.     ' Liberamos el objeto de la memoria
  68.    Set objGeo = Nothing
  69. End If

Saludos cordiales
Comentario de Moderador

Por favor, usar los resaltes de sintaxis para que quede "elegante" el post

Última edición por Josber fecha: 16 de septiembre de 2025 a las 08:55.
Jorgeanna is offline   Responder Con Cita