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 13-11-2013
[Waldo] Waldo is offline
Miembro Premium
 
Registrado: sep 2003
Posts: 101
Poder: 21
Waldo Va por buen camino
¿Por qué ShellExecute imprime pdf en win8 y no en win7?

Buen día, hola tengo este código

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


en la maquina donde se desarrolla ejecuta perfectamente la función, pero cuando llevo la aplicación a otra maquina no hace nada. no entiendo el porque. ojala me podrían ayudar.
Responder Con Cita
  #2  
Antiguo 13-11-2013
[Waldo] Waldo is offline
Miembro Premium
 
Registrado: sep 2003
Posts: 101
Poder: 21
Waldo Va por buen camino
Cita:
Empezado por Waldo Ver Mensaje
Buen día, hola tengo este código

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


en la maquina donde se desarrolla ejecuta perfectamente la función, pero cuando llevo la aplicación a otra maquina no hace nada. no entiendo el porque. ojala me podrían ayudar.
También he descubierto que tampoco me ejecuta la apertura del archivo PDF, es como si no funcionara el shellexecute
Responder Con Cita
  #3  
Antiguo 13-11-2013
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por Waldo Ver Mensaje
También he descubierto que tampoco me ejecuta la apertura del archivo PDF, es como si no funcionara el shellexecute
¿esta instalado algun lector de pdf en la pc que no funciona?
__________________
all your base are belong to us
Responder Con Cita
  #4  
Antiguo 13-11-2013
[Waldo] Waldo is offline
Miembro Premium
 
Registrado: sep 2003
Posts: 101
Poder: 21
Waldo Va por buen camino
Cita:
Empezado por look Ver Mensaje
¿esta instalado algun lector de pdf en la pc que no funciona?
Si por que ejecuto el archivo desde el explorador y me abre el acrobat sin problemas.
Responder Con Cita
  #5  
Antiguo 13-11-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, no olvides poner títulos descriptivos a tus preguntas, "Ayuda" no es ningún título que describa nada.
A ver si damos ejemplo, que eres un usuario "Premium"
Responder Con Cita
  #6  
Antiguo 13-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
Por favor, no olvides poner títulos descriptivos a tus preguntas, "Ayuda" no es ningún título que describa nada.
A ver si damos ejemplo, que eres un usuario "Premium"
Una disculpa tienes razon. Ojala pudiera modificarlo.
Responder Con Cita
  #7  
Antiguo 13-11-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Waldo Ver Mensaje
Una disculpa tienes razon. Ojala pudiera modificarlo.






.
Responder Con Cita
  #8  
Antiguo 14-11-2013
[Waldo] Waldo is offline
Miembro Premium
 
Registrado: sep 2003
Posts: 101
Poder: 21
Waldo Va por buen camino
Código Delphi [-]
ShellExecute(0, nil, 'calc.exe', '', '', SW_SHOWNORMAL);

esa instrucción si me la ejecuta en las otras maquinas pero la de Print no, realmente ya me siento desesperado.
Responder Con Cita
  #9  
Antiguo 14-11-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Waldo Ver Mensaje
Código Delphi [-]ShellExecute(0, nil, 'calc.exe', '', '', SW_SHOWNORMAL);


esa instrucción si me la ejecuta en las otras maquinas pero la de Print no, realmente ya me siento desesperado.
¿La de Print?
Responder Con Cita
  #10  
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
¿La de Print?
Amigo me refiero al código inicial que puse es una instrucción para imprimir un archivo pdf, me funciona en windows 8 pero en 7 no.
Responder Con Cita
  #11  
Antiguo 14-11-2013
Avatar de The_Duke
The_Duke The_Duke is offline
Miembro
 
Registrado: abr 2006
Ubicación: Republica Dominicana
Posts: 48
Poder: 0
The_Duke Va por buen camino
Revisa que el servicio de cola de imprecion esta activado y que tenga impresora instalada
__________________
BS Picture es un visor de imágenes pequeño y útil que incluye todas las características necesarias
Responder Con Cita
  #12  
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 The_Duke Ver Mensaje
Revisa que el servicio de cola de imprecion esta activado y que tenga impresora instalada
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.
Responder Con Cita
  #13  
Antiguo 14-11-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Waldo Ver Mensaje
Amigo me refiero al código inicial que puse es una instrucción para imprimir un archivo pdf, me funciona en windows 8 pero en 7 no.
Bueno, todo eso lo sabes tú, pero no es lo que has preguntado al inicio.
Responder Con Cita
  #14  
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
  #15  
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
  #16  
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
  #17  
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
  #18  
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
  #19  
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 04:16:58.


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