Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   impresion con ShellExecuted (https://www.clubdelphi.com/foros/showthread.php?t=73514)

gabyzava 27-04-2011 21:04:59

impresion con ShellExecuted
 
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:

Código Delphi [-]
WinExec('MSPAINT c:\test.jpg /p', SW_SHOWNORMAL);

gabyzava 28-04-2011 16:55:08

impresion con ShellExecuted'‏
 
Muchas gracias,

muy buena respuesta, voy a probar:)

gabyzava 28-04-2011 18:36:21

impresion con winexec
 
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.


La franja horaria es GMT +2. Ahora son las 14:03:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi