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 14-11-2013
[Waldo] Waldo is offline
Miembro Premium
 
Registrado: sep 2003
Posts: 101
Poder: 21
Waldo Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Bueno, todo eso lo sabes tú, pero no es lo que has preguntado al inicio.
ok lo expongo de nuevo...

Código Delphi [-]
ShellExecute(Self.Handle,'print',PChar('archivo.pdf'),NIL,NIL,0);

esta instrucción me funciona bien en windows 8, y es el equipo donde se programa.

pero cuando el ejecutable es llevado a otra pc no funciona, de hecho no marca error siquiera, simplemente es como si no existiera la instrucción.

pero cuando utilizo
Código Delphi [-]
ShellExecute(0, nil, 'calc.exe', '', '', SW_SHOWNORMAL);

si funciona en todas las maquinas
Responder Con Cita
  #2  
Antiguo 14-11-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Waldo.

De lo leído del hilo quedaría revisar la existencia, el nombre y la ruta del archivo .PDF en los equipos en que no ejecuta la impresión. Si ShellExecute recibe un nombre de archivo inválido no mostrará error de ningún tipo pero no realizará la acción.

Para salir de dudas proba de la siguiente forma:
Código Delphi [-]
procedure PrintPDF(aFileName: TFileName);
begin
  if not FileExists(aFileName) then
    raise Exception.Create('Error en la ruta o el nombre del archivo');
  ShellExecute(Screen.ActiveForm.Handle, 'print', PChar(aFileName), nil ,nil, 0)
end;

// llamada:
...
begin
  PrintPDF('archivo.pdf');
end;


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 14-11-2013
[Waldo] Waldo is offline
Miembro Premium
 
Registrado: sep 2003
Posts: 101
Poder: 21
Waldo Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola Waldo.

De lo leído del hilo quedaría revisar la existencia, el nombre y la ruta del archivo .PDF en los equipos en que no ejecuta la impresión. Si ShellExecute recibe un nombre de archivo inválido no mostrará error de ningún tipo pero no realizará la acción.

Para salir de dudas proba de la siguiente forma:
Código Delphi [-]
procedure PrintPDF(aFileName: TFileName);
begin
  if not FileExists(aFileName) then
    raise Exception.Create('Error en la ruta o el nombre del archivo');
  ShellExecute(Screen.ActiveForm.Handle, 'print', PChar(aFileName), nil ,nil, 0)
end;

// llamada:
...
begin
  PrintPDF('archivo.pdf');
end;


Saludos

Utilice el código sugerido, no me arroja ningún error, ya verifique manualmente que el archivo existe y que la dirección del archivo a imprimir es correcto, y nada lo ignora, pero cuando lo hago en la pc donde lo programo funciona perfecto.
Responder Con Cita
  #4  
Antiguo 14-11-2013
[Waldo] Waldo is offline
Miembro Premium
 
Registrado: sep 2003
Posts: 101
Poder: 21
Waldo Va por buen camino
Logre solucionarlo, curiosamente cuando me iba a la carpeta de los archivos pdf, y lo ejecutaba abría el acrobat sin problemas por lo que suponía que estaba asociado el archivo, hasta que utilice este código,
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
 errorcode: integer;
begin
 errorcode :=
  ShellExecute(0, 'open', pchar('c:\test.txt'), nil, nil, SW_NORMAL);
 case errorcode of
  2:showmessage('file not found');
  3:showmessage('path not found');
  5:showmessage('access denied');
  8:showmessage('not enough memory');
  32:showmessage('dynamic-link library not found');
  26:showmessage('sharing violation');
  27:showmessage('filename association incomplete or invalid');
  28:showmessage('DDE request timed out');
  29:showmessage('DDE transaction failed');
  30:showmessage('DDE busy');
  31:showmessage('no application associated with the given filename extension');
 end;

que me ayudo claramente que era lo que sucedía. y Bingo según el sistema no hacia ninguna aplicación asociada al archivo ( raro) por lo que tuve que renacer la asociación de archivo y listo. Gracias a todos por el interés y su tiempo.
Responder Con Cita
  #5  
Antiguo 15-11-2013
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
La solución que encontraste era la primera a probar. Si no tienes asociada ninguna aplicación a un archivo x, así mandes n comandos windows nunca hará nada con ellos porque no sabe con que aplicación usarlos. Lo quise poner aquí para que sirva de referencia a alguien con la misma duda.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #6  
Antiguo 15-11-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola AzidRain.

Y tenés toda la razón en tu apreciación. Pero del mensaje #12, creí entender que ya había explorado esa posibilidad:
Cita:
Empezado por Waldo Ver Mensaje
Gracias por contestar, Tengo instalado varia impresoras que el mismo sistema utiliza sin problemas, también esta instalado el programa asociado al archivo en este caso el pdf, la cola de impresión esta vacía, y eso sucede en las otras dos maquinas que utilizan windows 7, ya revise permisos del ejecutable, todas las maquinas son a 32 bits, donde si funciona es en windows 8, y es precisamente donde se programa en delphi 7.
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Problema con una aplicación delphi 5 en win8 vicvil Windows 0 27-03-2013 15:17:37
captura en win7 dfarias Impresión 1 08-06-2011 19:50:37
FreeReport en Win7 Oriol M. Conexión con bases de datos 0 17-02-2009 04:00:49
Solo imprime Labels, No imprime QRDBText miquellg Impresión 1 14-07-2006 21:39:46
Reporte imprime no imprime sale en Blanco Alexander Impresión 0 22-08-2005 16:09:47


La franja horaria es GMT +2. Ahora son las 06:06:04.


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