Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-11-2014
Avatar de Draker
Draker Draker is offline
Miembro
 
Registrado: ene 2005
Posts: 27
Poder: 0
Draker Va por buen camino
Cerrar Archivo Abierto con ShellExecute

Buenos dias, pues bien, yo ejecuto mi archivo con:

Código Delphi [-]
ShellExecute(handle,'open',Pchar(fOld),nil,nil,SW_SHOWNORMAL);

La cuestión es que me gustaria saber si hay forma de que al "ejecutarlo" se pueda obtener el handle de esa archivo abierto, para luego cerrarlo con:

Código Delphi [-]
SendMessage(hdl, WM_CLOSE, 0, 0);

Esto devido a que con

Código Delphi [-]
A:= TmNombre.Value+'.'+txTipo.Text+' - Adobe Reader';
hdl := FindWindow(nil, PChar(A) );
SendMessage(hdl, WM_CLOSE, 0, 0);

Logro cerrar los archivos pdf exclusivamente, aparte de que si el archivo PDF muestra la leyenda "(protegido)", ya no logra encontrar dicha ventana.

Última edición por Draker fecha: 12-11-2014 a las 17:35:12. Razón: no se muestran el codigo en delphi
Responder Con Cita
  #2  
Antiguo 12-11-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Creo que con "ShellExecute" no podrás lograr lo que quieres. Busca información sobre "CreateProcess" y "TerminateProcess".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 12-11-2014
Avatar de Draker
Draker Draker is offline
Miembro
 
Registrado: ene 2005
Posts: 27
Poder: 0
Draker Va por buen camino
graciassss dec, me funciono muy bien, aunque tendre que hacer un arreglo para saber el programa y la ruta del mismo para abrir determinado archivo (pdf,doc,lit,etc) pero realmente es lo que queria.
Responder Con Cita
  #4  
Antiguo 14-11-2014
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Para saber que ejecutable abre un archivo, revisa la API FindExecutable

Saludos.
Responder Con Cita
  #5  
Antiguo 14-11-2014
Avatar de Draker
Draker Draker is offline
Miembro
 
Registrado: ene 2005
Posts: 27
Poder: 0
Draker Va por buen camino
, grax escafandra, complementaste mi laburo, aprovecho para preguntar:

Puedo cerrar mis archivos abiertos con mi aplicación, peeeero, los archivos en word se cierran y puedo moverlos a otra ubicación, pero me dejan su archivo temporal (~$archivo.doc) en la carpeta origen.

Alguna sugerencia de como hacerlo con el TerminateProcess?
Responder Con Cita
  #6  
Antiguo 14-11-2014
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por Draker Ver Mensaje
...los archivos en word se cierran y puedo moverlos a otra ubicación, pero me dejan su archivo temporal (~$archivo.doc) en la carpeta origen.

Alguna sugerencia de como hacerlo con el TerminateProcess?
Sólo te queda borrarlos. Ten en cuenta que TerminateProcess es un método de «cerrar a lo bruto». La App no guardará copias de los archivos con los que trabajaba y perderá información.


Saludos.
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
ShellExecute y cerrar Acrobat jmlifi Impresión 5 30-01-2009 02:59:31
no puedo abrir un archivo con ShellExecute si el archivo es variable belpab API de Windows 2 28-11-2007 16:24:22
Detectar archivo abierto StartKill API de Windows 2 14-12-2004 16:05:31
Archivo de excell abierto valentine API de Windows 2 03-06-2004 10:10:28


La franja horaria es GMT +2. Ahora son las 05:57:32.


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