PDA

Ver la Versión Completa : impresion con ShellExecuted


gabyzava
27-04-2011, 21:04:59
Hola a todos, tengo dudas de ShellExecuted

Tengo una lista de nombres de archivos con sus rutas y tengo que imprimirlos. Pero solo manda a imprimir los que son rtf.

Uso este codigo:

s:=archivos[i];
ShellExecute(form1.Handle,'Print', pchar(s), nil, nil, SW_SHOWNORMAL );

¿Tienen alguna idea de porque no funciona?

¿Hay otra forma de mandar a imprimir archivos de varias extensiones (bmp,jpg,doc, etc)?


Mil gracias:)

Neftali [Germán.Estévez]
28-04-2011, 10:49:40
El problema es que ShellExecute ejecuta lo que tenga configurado el sistema.
Hay que tener en cuenta, por tanto, que los comandos de Abrir o Imprimir ejecutarán lo que el sistema tenga por defecto y esto puede variar segun el sistema. Puede ser que en un ordenador tengas un visualizador de ficheros DOC y en otro no.
Lo mismo pasa con la impresión que tenga el sistema para los ficheros BMP (por decir algo), puede variar el comportamiento de la aplicación en diferentes máquinas.

En este caso, yo creo que es mejor que exprésamente llames a un programa que sepas que te permite imprimir.

Por ejemplo, para un JPG podrías usar el MSPaint (por decir uno), con el parámetro /p para imprimir.
MSPAINT C:\Test.jpg /p

Si utilizas WinExec, esto debería funcionar:


WinExec('MSPAINT c:\test.jpg /p', SW_SHOWNORMAL);

gabyzava
28-04-2011, 16:55:08
Muchas gracias,

muy buena respuesta, voy a probar:)

gabyzava
28-04-2011, 18:36:21
Hola otra vez

Ya lo probe y funciona bien cuando tengo que imprimir un bmp, pero
no se como mandar a imprimir otros tipos de archivos como:

word, power point, excel, etc.


¿donde puedo encontrar como ponerlo?, es decir cambiar el 'mspaint' por los
programa correspondientes

Este funciona:
WinExec( pchar('Mspaint '+s+' /p'), SW_SHOWNORMAL);


Gracias de antemano.