2010-05-04 9 views
2

J'essaie de résoudre un problème similaire comme cela a été décrit here - pour créer un service Windows pour prendre des instantanés de pages Web riches (html + js + flash) et les enregistrer dans un fichier PDF.Pourquoi Flash ne peut pas être rendu dans un service Windows?

Le paquet Firefox + cmdlnprint a fait l'affaire pour moi. J'ai écrit un programme simple fonctionnant comme un service qui invoque Firefox pour faire un PDF. Tout semble bien, le PDF est créé, mais Flash est complètement manquant. Bien que, lorsqu'il n'est pas commencé en tant que service, Flash rend très bien. Quelqu'un peut-il faire la lumière sur ce qui bloque le rendu de Flash et s'il y a une solution de contournement?

merci!

+0

Le chargement d'une page Web (en particulier celle contenant du contenu Flash) dans le contexte de LocalSystem est une idée terrible. – Luke

+0

C'est supposé être une solution serveur qui devrait pouvoir fonctionner même si aucun utilisateur n'est connecté. – Leonid

+0

@Leonid: Avez-vous eu ce travail comme je le fais exactement la même chose. –

Répondre

1

Je ne peux tirer dans le noir ici, mais deux choses viennent à l'esprit:

  • Qui (quel utilisateur) est votre service en cours d'exécution en tant que? Que se passe-t-il si vous faites fonctionner le service sous l'administrateur? Si votre service s'exécute sur le compte système local, avez-vous activé la case à cocher "Autoriser l'échange de données entre le bureau et le service" pour le service (Vous ne savez pas de quoi il s'agit en anglais)? Vous ne savez jamais ce que Flash doit exécuter.

Si cela ne fonctionne pas, avez-vous regardé Crowbar et XULRunner? Je ne sais pas avec certitude s'ils font ce dont vous avez besoin - et s'ils le font, si Flash travaille avec eux - mais ils semblent être des approches à la même chose que vous essayez de faire. Pourquoi doit-il fonctionner en tant que service?

+0

Je pourrais le faire fonctionner uniquement sous un compte d'utilisateur de niveau Administrateur. Je n'avais aucune chance d'exécuter le service sous le compte LocalSystem avec ou sans "Autoriser le service à interagir avec le bureau" - recevait un message que le service n'était pas autorisé à imprimer. Merci d'avoir suggéré d'autres solutions, mais il semble que le problème soit dans Flash lui-même. J'ai essayé un autre utilitaire appelé IECapt (iecapt.sourceforge.net) basé sur l'IE et il n'a pas rendu Flash dans le mode de service aussi bien. – Leonid

+0

@Leonid pour qu'il fonctionne sous un compte Admin en tant que service? –

+0

Je suis désolé, je voulais dire que je ne pouvais obtenir le PDF généré dans un service fonctionnant sous un compte Admin. Il y avait toujours des espaces vides au lieu de Flash. Si vous exécutez le service sous Localsystem même le PDF n'a pas pu être généré. Donc, PDF + Flash ne fonctionnait que dans l'utilisateur, en mode non-service. J'essaie de comprendre pourquoi c'est ainsi. – Leonid