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 :

Tester l'ouverture d'un fichier pdf


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Cem
    Cem est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 36
    Par défaut Tester l'ouverture d'un fichier pdf
    Bonjour,

    Je cherche à tester si un fichier pdf est ouvert, en l’occurrence avec le programme Pdf Architect 7. Avec l'API WMI de windows j'arrive à tester si le programme Pdf Architect 7 est ouvert mais pas moyen de trouver une manière de savoir si un fichier pdf spécifique y est ouvert?(J'utilise Access 2016 sous Windows 10)

    Merci pour votre collaboration

    Cem

  2. #2
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 287
    Par défaut
    Salut
    Avec cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function IsFileOpen(ByVal strFic As String) As Boolean
        Dim fic As Integer
        On Error Resume Next
     
        fic = FreeFile()
        Open strFic For Input Access Read Lock Read Write As fic
     
        If Err.Number = 0 Then
            IsFileOpen = False
            Close fic
        Else
            IsFileOpen = True
        End If
    End Function

  3. #3
    Cem
    Cem est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 36
    Par défaut
    Merci Hyperion13,

    C'est exactement ce que je voulais.
    En fait je veux utiliser cette fonction pour fermer un pdf que j'aimerais renommer donc après avoir testé s'il est ouvert j'aimerais le fermer: J'ai réussi a fermer le processus:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .....
             IsFileOpen = True
             Shell "taskkill /f /im architect.exe", vbHide 'Ferme Architect 7 pour éviter l'erreur!
             .....
    Mais je ne trouve pas comment fermer uniquement le fichier concerné ...(en l’occurrence strFic)
    Y'a-t'il un truc?😉

  4. #4
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 287
    Par défaut
    Re
    C'est une proc que j'ai récupéré il y a des lustres et qui fonctionne avec Adobe Acrobat Pro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Option Explicit
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
    (ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
    lParam As Any) As Long
     
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassname As String, ByVal lpWindowName As String) As Long
     
    Private Const WM_CLOSE = &H10
    Private Sub btnclosepdf_Click()
        Dim Hwnd As Long
     
        '~~> Find the window of the pdf file
        Hwnd = FindWindow(vbNullString, "NomDuFichier.pdf - Architect 7") 
     
        If Hwnd Then
            '~~> Close the file
            PostMessage Hwnd, WM_CLOSE, 0, ByVal 0&
        Else
            MsgBox "Pdf File not found"
        End If
    End Sub

  5. #5
    Cem
    Cem est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 36
    Par défaut
    ...J'ai essayé cette procédure mais j'ai rencontré les mêmes problèmes que Gaby277 dans une discussion non résolue de 2013(Findwindow sous Access 2010 32 bits, Windows 8 64 bits) à savoir que si j'essaie avec un document Word, p.ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      strFic = "Document1 - Word"
     ' Find the window of the pdf file
      Hwnd = FindWindow(vbNullString, strFic)
    pas de problème car Hwnd est différent de 0

    mais avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      strFic ="PDFx.pdf - PDF Architect Professional"
     ' Find the window of the pdf file
      Hwnd = FindWindow(vbNullString, strFic)
    ce qui est le titre de la fenêtre comme inscrite,

    Nom : Capture.PNG
Affichages : 486
Taille : 1,9 Ko

    ça ne marche pas...la seule vraie différence c'est peut-être qu'il y a des espaces???

    J'ai aussi essayé des caractères de substitution comme: "*"... sans résultat

    Peut on retrouver le nom de la fenêtre d'une autre manière?

    Merci pour votre aide

  6. #6
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 287
    Par défaut
    Alors tu fais comment moi, tu ouvres le gestionnaire des tâches et tu reprends la syntaxe donnée par le gestionnaire.
    Parfois, il faut ou non l'extension. Et tu respectes la casse.
    Images attachées Images attachées  

Discussions similaires

  1. [AC-2003] Tester l'ouverture d'un fichier PDF
    Par moilou2 dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/07/2009, 18h06
  2. Ouverture d'un fichier PDF
    Par Zebulon777 dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 03/02/2009, 17h09
  3. ouverture d'un fichier pdf
    Par chti_juanito dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 06/07/2006, 16h47
  4. [Image]Ouverture en apercu fichier PDF
    Par perlgirl dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 29/11/2005, 15h42
  5. [Système] ouverture d'un fichier pdf
    Par joneil dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 17/05/2005, 10h36

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