Problème impressions silencieuses PDF

Sur l'informatique en général : OS, réseaux, logiciels, hardware...

Problème impressions silencieuses PDF

Messagepar Hao » 09 Mars 2015, 14:56

Bonjour à tous,

depuis quelques temps (évidemment je ne sais pas trop quand ça a commencé, ni ce qui a pu provoquer ce changement de comportement) le lecteur PDF défini par défaut dans Windows s'ouvre (et reste ouvert) dès que j'imprime un fichier PDF en passant par "Imprimer" dans le menu contextuel d'explorer. Dans ce cas précis, ça n'est pas trop gênant, mais je suis amené à imprimer des PDF par lots via la fonction ShellExecute, et donc ça m'ouvre et ferme en boucle le lecteur PDF. D'une part ça ralentit grandement l'opération, et de plus je ne peux rien faire en attendant la fin de l'impression de tous les documents PDF.

J'ai vérifié dans la base de registre la commande utilisée pour les actions "print" et "printto" :

    Pour "print" :
    Code: Tout sélectionner
    "C:\Program Files\Foxit Software\Foxit Reader\FoxitReader.exe" /p /h "%1"

    Et "printto" :
    Code: Tout sélectionner
    "C:\Program Files\Foxit Software\Foxit Reader\FoxitReader.exe" /t "%1" "%2" "%3" "%4"

OS : Windows XP Pro SP3
Lecteur PDF : Dernière version de Acrobat Reader / Foxit Reader (l'un ou l'autre, ça ne change rien).
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 279
Inscription: 27 Novembre 2013, 22:24

Re: Problème impressions silencieuses PDF

Messagepar dionosis » 09 Mars 2015, 19:55

Salut HaO,

Essaye avec CreateProcess.
ShellExecute prend en compte tout un tas de paramètres de configuration de l'OS, parfois c'est bien mais dans ton cas je ne pense pas.

hXXps://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: Problème impressions silencieuses PDF

Messagepar Hao » 10 Mars 2015, 00:17

Merci pour ta réponse,

J'utiliserai cette méthode en dernier recours.
Mais dans un premier temps je vais éviter de changer le code. Il est présent dans plusieurs applications. Et je n'ai pas la possibilité de recompiler certaines de ces applications.
Il y a un mois de ça, je n'avais pas le problème. Donc le code n'est a priori pas à remettre en cause.
D'instinct je dirais que quelque chose a changé dans la config du système d'exploitation.
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 279
Inscription: 27 Novembre 2013, 22:24

Re: Problème impressions silencieuses PDF

Messagepar dionosis » 10 Mars 2015, 00:49

Bon et bien une rapide recherche g00gle avec "foxit opening when printing" me donne pour premier résultat :
hXXp://forums.foxitsoftware.com/forum/portable-document-format-pdf-tools/foxit-reader/31928-quick-print-leaves-foxit-open

Peut-être ont ils de nouveau le soucis ?!
Y'a t'il eu une mise à jour récente que vous auriez appliquée ?

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: Problème impressions silencieuses PDF

Messagepar Hao » 10 Mars 2015, 01:26

J'ai mis à jour Foxit suite au problème, pas avant. Et depuis j'ai testé avec Acrobat Reader également, avec Foxit désinstallé. Même comportement.
J'ai même testé gsprint, une partie de gsview basée sur ghostscript : résultat, ça m'ouvre le lecteur PDF par défaut et ça n'imprime pas.

Edit : Je vais quand même essayer un downgrad de version demain, je vous tiens au courant.
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 279
Inscription: 27 Novembre 2013, 22:24

Re: Problème impressions silencieuses PDF

Messagepar Hao » 12 Mars 2015, 00:14

Reuh.

Edit : Bon en fait je vais tenter le sacrifice de poules noires, et si ça ne fonctionne pas j'essaierai sur un humain. Après j'envisagerai de changer le code. :mrgreen:
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 279
Inscription: 27 Novembre 2013, 22:24

Re: Problème impressions silencieuses PDF

Messagepar Hao » 12 Mars 2015, 18:09

dionosis a écrit:Bon et bien une rapide recherche g00gle avec "foxit opening when printing" me donne pour premier résultat :
hXXp://forums.foxitsoftware.com/forum/portable-document-format-pdf-tools/foxit-reader/31928-quick-print-leaves-foxit-open

Peut-être ont ils de nouveau le soucis ?!
Y'a t'il eu une mise à jour récente que vous auriez appliquée ?

++


Merci pour tes réponses, apparemment j'avais pas "downgradé" assez loin. :? :boulet:
Ça m'apprendra a pas lire les topics jusqu'au bout...
Le problème est présent même dans les premières versions de Foxit 7. Le fait de repasser sur Foxit 6 corrige le problème.

dionosis a écrit:Salut HaO,

Essaye avec CreateProcess.
ShellExecute prend en compte tout un tas de paramètres de configuration de l'OS, parfois c'est bien mais dans ton cas je ne pense pas.

hXXps://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx

++


En ce qui concerne ta première réponse, j'ai testé CreateProcess, et ça ne change rien (même avec l'utilisation du flag CREATE_NO_WINDOW qui ne fonctionne apparemment que pour les applications de type console).

J'ai même testé un bout de code VB.NET sans succès :
! HideWindow(pHideMe.MainWindowHandle) fait appel à la fonction ShowWindow de l'API User32
Code: Tout sélectionner
    Public Sub Main()

        Dim pHideMe As New System.Diagnostics.Process

        pHideMe.StartInfo.FileName = "C:\Program Files\Foxit Software\Foxit Reader\FoxitReader.exe"
        pHideMe.StartInfo.Arguments = "/p /h ""D:\blank.pdf"""
        pHideMe.Start()

        HideWindow(pHideMe.MainWindowHandle)

        pHideMe.Close()

    End Sub


Ce code ne cache pas la fenêtre... Sauf... Sauf... Si je met un breakpoint avant l'éxecution de HideWindow et que j'appuis sur F5 pour laisser l’exécution se poursuivre. :refl1:
C'est quand même fort en chocolat ! Aussi fort que le jour ou un mec s'est dit : Hey ! Si on prenait " pour caractère d'échappement ! Ça pourrait-être marrant...

Bref tout ça pour dire que je vais rester sur Foxit 6. :mrgreen:
En tout cas merci d'avoir résolu mon problème.
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 279
Inscription: 27 Novembre 2013, 22:24

Re: Problème impressions silencieuses PDF

Messagepar dionosis » 12 Mars 2015, 18:47

Salut,

Content que tu ais trouvé ta solution.

Hao a écrit:Ça m'apprendra a pas lire les topics jusqu'au bout...

Oh le vilain ! :oops:
Même moi je l'avais lu en entier avant de te le linker.

Hao a écrit:Ce code ne cache pas la fenêtre... Sauf... Sauf... Si je met un breakpoint avant l'éxecution de HideWindow et que j'appuis sur F5 pour laisser l’exécution se poursuivre. :refl1:
C'est quand même fort en chocolat !

Probablement une histoire de focus et donc indirectement de z-order.
Si tu souhaites investiguer d'avantage, en bricolant avant SetWindowPos() (HWND_BOTTOM ou HWND_NOTOPMOST dans hWndInsertAfter, et SWP_HIDEWINDOW dans les uFlags), tu devrais obtenir le comportement escompté.
hXXps://msdn.microsoft.com/en-us/library/windows/desktop/ms633545%28v=vs.85%29.aspx

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: Problème impressions silencieuses PDF

Messagepar Hao » 12 Mars 2015, 20:55

Merci pour le lien.

Je vais regarder et faire mumuse un peu avec cette fonction. Je connaissais pas du tout le z-order.

Enfin de toute façon je pense rester sur la version 6 de Foxit tant que le problème n'est pas résolu. C'est quand même plus propre d'avoir un processus qui ne crée pas d'interface graphique et qui se termine tout seul que de laisser la fenêtre se créer pour ensuite pouvoir la masquer et qu'au final l'instance de Foxit tourne et reste en tâche de fond...
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 279
Inscription: 27 Novembre 2013, 22:24

Re: Problème impressions silencieuses PDF

Messagepar dionosis » 13 Mars 2015, 19:59

Re,

Il est également possible que la main window n'ait tout simplement pas eu le temps de se créer vu que System.Diagnostics.Process.Start() n'attend manifestement pas la fin de l'execution (je connais pas mais vu qu'en posant ton bp ca hit, ça doit être ça).

Essaye donc également simplement en mettant un petit Sleep quelques millisecondes avant de faire ton HideWindow() et si c'est ça alors trouve un moyen de tester le mainHandle avant de faire ton hide.

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43


Retourner vers Informatique

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 3 invités