Power Builder - Powerbuilder 6.5 - PDF

 
Vista:

Powerbuilder 6.5 - PDF

Publicado por Rosana (3 intervenciones) el 06/08/2007 08:58:40
Hola

Trabajo con Powerbuilder 6.5, y tengo un problemilla. Genero un pdf partiendo de un documento word con el pdf creator. Hasta ahi todo funciona perfectamente. Despues, abro el pdf generado en una ventana mediante el ocx de acrobar reader, utilizanod LoadFile.

El problema es que la primera vez funciona de maravilla, pero la segunda no se abre el pdf, se abre la ventana pero nada mas. Al mira rlos procesos que corren en memoria una vez abro el pdf por primera vez, aparece el AcroRd32.exe, es decir, no se cierra aunque cierre la ventana.

Por algun extraño motivo, no puedo ver las propiedades del objeto ocx, aunque este si funcione.

¿alguien ha tenido este problema? ¿podríais enviarme las propiedades de este objeto al correo electrónico?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Powerbuilder 6.5 - PDF

Publicado por Asgard (1957 intervenciones) el 09/08/2007 18:38:00
Ya intentaste cerrar la tarea.

Talvez te falte cerrar parte de la sesion por lo que no se esta incializando en la segunda vez.

con este truco puedes hacerlo:
---------------------------
Este truco chequea si una aplicación esta en ejecución, y si lo está la detiene. Primero se chequea si la aplicación está en ejecución usando la llmada API FindWindowA(). Entonces, si la ventana está en ejecución y el usuario quiere detenerla se usa la llamada API PostMessageA() que muestra la ventana de mensaje WM_QUIT para detener la aplicación.

- Declaraciones de funciones externas:
FUNCTION ULong FindWindowA(ULong classname, String windowname) LIBRARY "user32.dll"
FUNCTION boolean PostMessageA(ulong hwndle,UINT wmsg,ulong wParam,ulong lParam) Library "User32.dll"

- Power Script
Ulong lul_handle, lul_class
String ls_name

// El valor hexadecimal de wm_quit es 0x0012. Convertido a valor decimal es 18. UInt lui_quit = 18
// Pone la Clase a NULL. Esto no es obligatorio, puedes pasarle 0 también a la función FindWindowA().
SetNull(lul_class)

// Este es el código de la ventana. Por ejemplo la calculadora de Windows
ls_name = "Calculator"

// Usa la llamada API para obtener el puntero de la ventana si la aplicación está en ejecución.
lul_handle = FindWindowA(lul_class, ls_name)

IF lul_handle > 0 THEN // Si se encuentra el puntero de la ventana se muestra el mensaje wm_quit
PostMessageA(lul_handle, lui_quit, 0, 0);
return
Else
MessageBox("Aviso", "La aplicación no está en ejecución. !")
END IF

Por Sameer N Phatak -- [email protected]
----------------------------

Como tu ya sabes como se llama el proceso no es necesario que lo busques.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Powerbuilder 6.5 - PDF

Publicado por Rosanna (3 intervenciones) el 10/08/2007 09:01:47
Hola!! Muchas gracias por contestar.

No entiendo que quieres decir con cerrar la sesión, no obstante, lo que indicas en tu nota ya lo intente (lo lei en el foro) pero la aplicación no está abierta, está en memoria, y me sale "La aplicación no está en ejecución".

El ocx no tiene ningun método para cerrar, sólo para cargar el fichero.

Ahora, ademas del problema de que se quede residente en memoria, tengo otro: abrir varios pdf en la misma ventana con un unico objeto ole.

Voy a mirar por el foro de adobe a ver si leo algo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar