Librería PalmDB.dll

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
jamaro
Hacker del Foro
Mensajes: 253
Registrado: 03 Nov 2010, 23:04

Librería PalmDB.dll

Mensaje por jamaro »

Hola de nuevo a tod@s:

Tengo una PDA Palm Tungsten T5 que hace tiempo que no utilizo, aunque volveré a hacerlo algún día :-)

El tema está en que Palm tiene un programa llamado "Palm Desktop" que permite sincronizar los datos de la PDA al PC. Aunque llevo tiempo sin utilizar la PDA, sí que guardo los datos en "Palm Desktop".

Ahora viene lo que realmente tiene relación con este foro:
En muchas ocasiones he buscado algo para poder leer los datos de la PDA (o del Palm Desktop), pero no había encontrado nada, hasta hoy, que se me ha vuelto a ocurrir, y he utilizado la búsqueda de Google de manera distinta y más ediciente :smt003 .

He encontrado la librería PalmDB.dll con archivo de ayuda que adjunto en este mensaje.

¿Es posible utilizar la librería con Autoit?
¿Alguien me puede orientar un poco de cómo utilizarlo en Autoit? El archivo de Ayuda define las funciones, pero no sé cómo empezar en Autoit :-)

EDITO: Supongo que el inicio está en la función de Autoit ObjCreate, pero no sé cómo hacerlo.
- Tengo en una misma carpeta el archivo au3, el dll y un archivo PDB de Palm.
- He puesto este código, y da error al crear el Objeto.

Código: Seleccionar todo

$oBasePalm=ObjCreate("PalmDB.Database")

If not @error then
    Msgbox(0,"Prueba","ObjCreate() creado con éxito!")
Else
    Msgbox(0,"Prueba","Falló al crear ObjCreate(). Código de error: " & hex(@error,8))
Endif
También he intentado registrar la dll con regsvr32, tal y como he leído en algún artículo, pero en mi consola me dice que "REGSVR32" no se reconoce como un comando interno o externo.
??¿¿??¿¿


Un saludo y gracias autoiters.
Adjuntos
2_20091216125848_Palmdb.zip
Librería PalmDB.dll y ayuda
(216.25 KiB) Descargado 82 veces
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Librería PalmDB.dll

Mensaje por Chefito »

Tu mismo te has respondido. Tanto el código para crear un objeto como el método para registrar el control son los correctos. No se porque te da ese mensaje de error. Descargate el archivo (regsvr32.exe), y ponlo por ejemplo en la misma cartepa donde se encuentra tu dll. Pon esto en una consola: regsvr32 palmdb.dll. Te debe salir un mensaje diciendote que se ha cargado exitosamente. regsvr32 tiene varias opciones interesantes, por ejemplo /s para ejecutarlo en modo silencioso y /u para desregistrarlo.

Yo siempre he registrado las dlls y ocx con el comando regsvr32. Lo acabo de hacer con tu dll y se me ha registrado con éxito. Luego he creado el objeto sin problemas. Una vez que lo creas es cuestión de trabajar con sus propiedades, métodos y eventos como cualquier otro objeto (ejemplo, IE).

Por cierto, se me ha registrado bien en un xp sp3. En w7 no.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
jamaro
Hacker del Foro
Mensajes: 253
Registrado: 03 Nov 2010, 23:04

Re: Librería PalmDB.dll

Mensaje por jamaro »

Chefito,efectivamente no tenía el archivo regsvr32,exe en mi ordenador y por eso no dejaba registrarlo.

Ahora ya se crea el ObjCreate() adecuadamente, pero de ahí ya no he pasado :-)

Código: Seleccionar todo

$oBasePalm=ObjCreate("PalmDB.Database")

If not @error then
	ConsoleWrite("¡ObjCreate() creado con éxito!"&@CRLF)
Else
    Msgbox(0,"Prueba","Falló al crear ObjCreate(). Código de error: " & hex(@error,8))
Endif

$sArchivo=@ScriptDir&"Carburante.PDB"
consolewrite($sArchivo)
;$Base=$oBasePalm.Load("Carburante.PDB")
;$Base=$oBasePalm.Load(@ScriptDir & "Carburante.PDB")
$Base=$oBasePalm.Load($sArchivo)
$BasColeccion=$Base.Records
El comando $oBasePalm.Load($sArchivo) ya da otro error: ==> The requested action with this object has failed.:

Por lo que leo en la ayuda, entiendo que primero hay que usar Load y luego la colección de Records,...

He probado el Load de varias maneras pero no da resultado. El archivo .PDB está en la misma carpeta que el script.

Saludos.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Librería PalmDB.dll

Mensaje por Chefito »

Puffff, dificil de averiguar cuando no tenemos ningún archivo de ese tipo. Si quieres cuelga uno de prueba para nosotros y te ayudamos mejor.

Creo ver que te falta el \ en el path:

Código: Seleccionar todo

$Base=$oBasePalm.Load(@ScriptDir & "\Carburante.PDB")
Si no es esto, puede que te esté fallando porque le intentas asignar un valor de salida a una función que no debe devolver nada. Prueba simplemente con:

Código: Seleccionar todo

$oBasePalm.Load(@ScriptDir & "\Carburante.PDB")
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
jamaro
Hacker del Foro
Mensajes: 253
Registrado: 03 Nov 2010, 23:04

Re: Librería PalmDB.dll

Mensaje por jamaro »

Chefito escribió:Puffff, dificil de averiguar cuando no tenemos ningún archivo de ese tipo. Si quieres cuelga uno de prueba para nosotros y te ayudamos mejor.

Creo ver que te falta el \ en el path:

Código: Seleccionar todo

$Base=$oBasePalm.Load(@ScriptDir & "\Carburante.PDB")
Si no es esto, puede que te esté fallando porque le intentas asignar un valor de salida a una función que no debe devolver nada. Prueba simplemente con:

Código: Seleccionar todo

$oBasePalm.Load(@ScriptDir & "\Carburante.PDB")
Saludos.
Chefito, he estado un tiempo "desconectado" de Autoit y del foro, y hoy he podido leer un poco.

Adjunto el archivo Carburant.PDB a ver si podemos hacer funcionar la DLL y averiguar si se puede dar algún uso.
Si no hay suerte con este .PDB intento subir otro más grande.
Adjuntos
Carburante.zip
(449 Bytes) Descargado 82 veces
Responder