Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-09-2008
jmlifi jmlifi is offline
Miembro
 
Registrado: abr 2005
Posts: 188
Poder: 20
jmlifi Va por buen camino
ShellExecute y cerrar Acrobat

Hola,
ejecuto lo siguiente:
Código Delphi [-]
ShellExecute(Self.Handle, 'print', PChar(Path+'\'+PiezaenRed(PzpedidosREF_N.AsString)+'.pdf'),  nil, nil, 0);

después se queda el Acrobat abierto. ¿cómo lo puedo cerrar ?

Última edición por jmlifi fecha: 05-09-2008 a las 16:11:29.
Responder Con Cita
  #2  
Antiguo 05-09-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 18
felipe88 Va por buen camino
Código Delphi [-]
var
  h: HWND;
begin
  h := FindWindow(nil, 'Acrobat Reader'); // O el titulo de la aplicación
  if h <> 0 then PostMessage(h, WM_CLOSE, 0, 0);
end;
Verifica que ese sea el titulo
__________________
Web
Responder Con Cita
  #3  
Antiguo 05-09-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Considero más apropiado usar la API ShellExecuteEx especificando SEE_MASK_NOCLOSEPROCESS en su estructura para obtener en la misma el manejador (hProcess), del proceso creado... ésto obviamente para que mediante la API WaitForSingleObject podamos saber si el proceso creado está en ejecución.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var ShellExecuteInfo: TShellExecuteInfo;
begin
 with ShellExecuteInfo do
  begin
   cbSize := SizeOf(ShellExecuteInfo);
   fMask := SEE_MASK_NOCLOSEPROCESS;
   Wnd := Handle;
   lpVerb := 'open';
   lpFile := PChar(Path + '\' + PiezaenRed(PzpedidosREF_N.AsString) + '.pdf');
   lpParameters := nil;
   lpDirectory := nil;
   nShow := SW_HIDE;
  end;
 ShellExecuteEx(@ShellExecuteInfo);
 WaitForSingleObject(ShellExecuteInfo.hProcess, INFINITE);
 MessageBox(0, 'Done!', nil, 0);
end;

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #4  
Antiguo 05-09-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 18
felipe88 Va por buen camino
Buen aporte maestro ... y pensar que yo solo encontre el truco
__________________
Web
Responder Con Cita
  #5  
Antiguo 27-01-2009
Avatar de bbjb
bbjb bbjb is offline
Miembro
 
Registrado: jul 2003
Posts: 97
Poder: 21
bbjb Va por buen camino
Disculpad mi ignorancia, pero me he encontrado el mismo problema que jmlifi y he intentado seguir vuestro consejo pero hay algo que no entiendo.
Sustituyo la acción 'open' por 'print' ya que necesito imprimir el documento, creo que es correcto no?.

Una vez llegado al punto
Código:
WaitForSingleObject(ShellExecuteInfo.hProcess, INFINITE);
el programa queda parado hasta que cierre yo la ventana de adobe reader que ha utilizado para imprimir el documento.
Si lo que necesito es que una vez impreso cierre automaticamente la aplicación adobe reader, ¿qué paso estoy realizando mal?.

Un saludo
Responder Con Cita
  #6  
Antiguo 30-01-2009
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Hola bbjb, me parece que puedes llamar a WaitForSingleObject con un tiempo razonable (en lugar de INFINITE) y luego cerrarla con TerminateProcess
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Imprimir Archivo y cerrar Acrobat lacovera Impresión 3 02-02-2017 21:25:29
Cerrar ventana Acrobat al imprimir PDF lacovera Impresión 0 21-08-2007 10:52:07
Excepción al imprimir en Acrobat Faust Impresión 0 02-05-2006 05:24:34
Cerrar Acrobat al enviar un fax epuigdef Impresión 3 07-10-2005 09:20:23
Marcadores ACROBAT tarco35 Varios 0 28-03-2005 19:05:54


La franja horaria es GMT +2. Ahora son las 08:35: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
Copyright 1996-2007 Club Delphi