IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Comment fermer un programme ouvert avec la fonction Shell


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut Comment fermer un programme ouvert avec la fonction Shell
    Bonjour ! J'utilise le code trouvé ici (Comment ouvrir un fichier en utilisant l'exécutable associé) pour imprimer des pdfs depuis mon formulaire. J'essaye de faire en sorte qu'une fois que l'impression est lancée, l'exécutable qui s'est ouvert pour lire le pdf se referme. Pour ça j'ai codé ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub cmdImprimer_Click()
        ShellExecute Me.hwnd, "open", CurrentProject.Path & "\PDFs\F-" & indiceFiche & ".pdf", "", CurrentProject.Path, 1
        KillApp (Me.hwnd)
    End Sub
    où la fonction kill correpond à celle-ci (Comment fermer un programme ouvert avec la fonction Shell). Cependant ça n'a pas l'air de fonctionner. Il est indiqué qu'on peut utiliser la valeur renvoyée par la fonction Shell() comme identifiant de programme, moi j'ai mis Me.hwnd, mais j'ai essayé aussi avec les autres paramètres et rien ...! Où est-ce que je me trompe ? Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Si tu veux juste imprimer, une petite variante

    Comment imprimer un document sans pour autant ouvir l'application associée


    Starec

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Salut, c'est effectivement la même méthode que j'ai utilisé, sauf que ça m'ouvre Acrobat Reader pour imprimer !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par nicolas2603 Voir le message
    Salut, c'est effectivement la même méthode que j'ai utilisé, sauf que ça m'ouvre Acrobat Reader pour imprimer !
    Regardes bien le lien, les paramètres de la chaine sont différents d'une ouverture.

    Starec

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Je note que j'ai fait une erreur, je n'ai pas copié le bon code dans mon post au desssus. Bien entendu ma fonction utilise print et non open, et il me semble que c'est le seul paramètre qui change non ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Bon j'ai recommencé et recommencé mon code mais toujours pareil, lorsque je clic sur le bouton imprimer j'ai Adobe Acrobat Pro qui se lance mais reste vide, on ne voit pas le PDF s'afficher, mais il s'imprime. Mon code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Compare Database
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
        ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    ----------------------
     
    Private Sub cmdImprimer_Click()
        ShellExecute Me.hwnd, "print", CurrentProject.Path & "\PDFs\F-" & indiceFiche & ".pdf", "", CurrentProject.Path, 1
    End Sub
    Donc est-ce que ça vient du fait que c'est Acrobat Pro et non Reader que l'application se lance ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Re

    C'est possible, essaye de changer dans les options des dossiers que ce soit le reader qui ouvre les Pdf et non le pro pour voir.

    Starec

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Hum, j'ai paramétré pour que mes PDF s'ouvrent par défaut avec Reader dans le PC, mais dans mon programme ça continu à être imprimé par Pro ! C'est bizarre ça !

  9. #9
    Invité
    Invité(e)
    Par défaut
    Re

    Effectivement, c'est bizarre.

    Peut-être que Acrobat Pro prend le pas sur le reader qu'elle soit le coix des options des dossiers.

    Fais un essai avec un fichier Word pour voir si cela fonctionne correctement.

    Starec

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Ouaip ça m'ouvre Word, ça imprime puis ça referme Word tout seul. Donc je pense que ça vient de Acrobat Pro ... Du coup c'est super chiant si j'installe l'applic sur un poste qui dispose d'Acrobat Pro, ça va faire pareil !

  11. #11
    Invité
    Invité(e)
    Par défaut
    Re

    C'est pour cela que je voulais que tu essayes avec un autre fichier. Cela signifie donc que ce serait AcrobatPro qui fout la M....E.

    Je ne l'utilise pas, j'utilise PDF Creator pour gérer mes PDF et Foxit Reader pour les lire.

    As-tu essayé sur le site d'Abode, ils doivent avoir une FAQ.

    Starec

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Non je n'ai pas essayé sur le site d'Adobe, je regarderai lundi; mais entre nous il y a de grandes chances que les postes qui recevront mon appli ne possèdent pas la version Pro d'Acrobat. D'ailleurs, est-ce que c'est possible, à l'installation du programme, de verifier si ils ont le Reader, et de l'installer automatiquement (setup sur le cd) le cas échéant ?

  13. #13
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Contournement un peu simpliste, on peut cacher la fenêtre de l'application, en donnant la valeur 0 (au lieu de 1) au paramètre nShowCmd de la fonction ShellExecute.
    Mais l'application ne devrait pas être stoppée après l'impression.

    Alors tu as la solution basée sur l'API ShellExecuteEx qui permet de connaître la processus lancé par le Shell.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Salut ! Intéressant, je vais me pencher dessus. Merci.

Discussions similaires

  1. [IDE] Comment fermer par programme un dialog affiché avec execute
    Par Pascale38 dans le forum C++Builder
    Réponses: 21
    Dernier message: 03/04/2013, 16h10
  2. Réponses: 2
    Dernier message: 17/07/2011, 12h16
  3. fermeture d'un fichier ouvert avec la fonction shell
    Par julio02200 dans le forum Access
    Réponses: 10
    Dernier message: 19/06/2006, 10h58
  4. Comment fermer une Fenetre Modal avec Code ?
    Par Soulama dans le forum Langage
    Réponses: 19
    Dernier message: 13/07/2005, 11h17
  5. comment deployer un programme fait avec jbuilder
    Par showmetheway dans le forum JBuilder
    Réponses: 6
    Dernier message: 23/09/2003, 01h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo