begin process at 2012 02 15 04:15:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

General

 > 

Vérifier l'installation d'acrobat


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Vérifier l'installation d'acrobat

samedi 5 août 2006 à 13:35:21 | Vérifier l'installation d'acrobat

joquetino

Bonjour à tous,

Dans mon programme en VB6, j'offre la possibilité à l'utilisateur de visualiser un fichier au format PDF. Pour cela, j'utilise le composant Adobe dans VB6. L'inconvénient, c'est que je dois tester si l'utilisateur a acrobat reader d'installé sur sa machine. Auriez-vous des pistes pour programmer cela?

Je suis preneur de toute aide.

Merci bcp et bon week-end.

samedi 5 août 2006 à 13:53:47 | Re : Vérifier l'installation d'acrobat

casy

Membre Club
Comment fais-tu pour afficher ton pdf ? si tu utilise le composant, tu dois surrement l'afficher directement dans ton programme.

Moi perso, je préfère lance AcrobatReader en application externe à l'aide d'une commande shell.

Tout d'abord j'utilise l'api FindExecutable pour récupérer le chemin de l'application qui ouvre le format pdf (ce n'est pas forcément acrobat reader, il existe d'autres logiciels).
Si le chemin retourné est vide, il n'y a pas d'application d'installer, sinon je la nce une commande shell :

Shell ("chemin_executable chemin_fichier").


Sevyc64  (alias Casy)
# LE PARTAGE EST NOTRE FORCE #
samedi 5 août 2006 à 14:29:42 | Re : Vérifier l'installation d'acrobat

casy

Membre Club
Et comme je suis sympa aujourd'hui, je te donne même mon code :





Public
 Declare Function CloseHandle Lib "kernel32" ByVal hObject As LongAs Long 
Public Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" ByVal lpFile As String, _ 
                                                                                  
ByVal lpDirectory As String, _ 
                                                                                  
ByVal lpResult As StringAs Long 
Public Declare Function OpenProcess Lib "kernel32" ByVal dwDesiredAccess As Long, _ 
                                                    
ByVal bInheritHandle As Long, _ 
                                                    
ByVal dwProcessId As LongAs Long 
Public Declare Function WaitForSingleObject Lib "kernel32" ByVal hHandle As Long, _ 
                                                            
ByVal dwMilliseconds As LongAs Long 

Public Const INFINITE = &HFFFFFFFF       '  Infinite timeout
Public Const SYNCHRONIZE = &H100000 

'---------------------------------------------------------------------------------------
' Procedure : OuvrirPdf
' DateTime  : 05/08/2006 14:08
' Author    : Casy
' Purpose   : Permet d'ouvrir un document PDF avec l'applicatif par défaut.
'             Vérifie d'abord si le fichier existe, si un applicatif est installé
'             Possibilité de bloquer le process tant que l'applicatif n'est pas fermé
'             Retourne TRUE si l'ouverture s'est bien passée, FALSE sinon.
'---------------------------------------------------------------------------------------
Public Function OuvrirPdf(fichier As String, attenteFermeture As BooleanAs Boolean 
Dim fileappli As String * 250 
Dim result As Integer 
Dim temp As String 
Dim fichAOuvrir As String 

temp = Dir$(fichier) 
 'recherche si le fichier existe
If temp <> "" Then 
    ' Le fichier existe

    ' Recherche Acrobat Reader ou autre
    result = FindExecutable(fichier, "c:\", fileappli) 
    
If result > 32 Then 
         ' Acrobat reader installé
        i = 
InStr(1, fileappli, Chr(0), vbBinaryCompare) - 1 
        fichAOuvrir = """" & Left$(fileappli, i) & """ " & fichier 
    
Else 
        ' Acrobat Reader pas installé
        OuvrirPdf = 
False 
        
Exit Function 
    
End If 
Else 
    ' Le fichier n'existe pas
    OuvrirPdf = 
False 
    
Exit Function 
End If 

' Ouverture du fichier PDF
pid = 
Shell(fichAOuvrir, vbMaximizedFocus) 
If pid <> 0 Then 
    ' Si attente fermeture demandé, on suspend le process jusqu'à que Acrobat soit fermé.
    
If attenteFermeture = True Then 
        phnd = OpenProcess(SYNCHRONIZE, 0, pid) 
        
If phnd <> 0 Then 
            
Call WaitForSingleObject(phnd, INFINITE) 
            
Call CloseHandle(phnd) 
        
End If 
    
End If 

    OuvrirPdf = 
True 
Else 
    OuvrirPdf = 
False 
End If 

End Function




Sevyc64  (alias Casy)
# LE PARTAGE EST NOTRE FORCE #
samedi 26 août 2006 à 12:22:53 | Re : Vérifier l'installation d'acrobat

F2E

Membre Club
Merci beaucoup Casy pour ce code qui fonctionne génialement bien pour ouvrir TRES rapidement un fichier .pdf.

Olivier


Cette discussion est classée dans : vb6, utilisateur, installation, vérifier, acrobat


Répondre à ce message

Sujets en rapport avec ce message

Assistant d'empaquetage dans VB6 (d'installation dans VB5) [ par Kévin ] Salut !!!V'là, je suis pas pro mais il y a un truc qui vas pas...Quand je lance l'assitant d'empaquetage et déploiement de VB6 je clique sur le bouton Assistant d'empaquetage dans VB6 (d'installation dans VB5) [ par Kévin ] Salut !!!V'là, je suis pas pro mais il y a un truc qui vas pas...Quand je lance l'assitant d'empaquetage et déploiement de VB6 je clique sur le bouton un probleme d'installation en vb6 [ par boris ] bonjour,j'ai fait un petit programme en vb6 (je débute...) qui se sert de textbox(s) pour faire une page web avec des frames.Sur windows 98se pas de p problème d'installation d'appli développée en VB6 [ par isa ] lorsque je déploie mon appli sur un autre poste, l'installation plante avec le message suivant :'le fichier c:TEMPmsftqws.pdw$(DLLSelfRegisterEx) ne p generation de son avec VB6 [ par daniel ] Bonjour,comment générer des sons par VB, que l'utilisateur ait ou non une carte son et quelle que soit la carte son ?Attention, il s'agirait d'un son installation de VB6 - Aide VB6 [ par big ] Bonjour lors d'installtion de VB6 sur une machine j'ai eu le message suivant : la tentative d'enregistrement automatique de msdasql.dll dans la Empaquetage VB6, Win NT et WIN95 Urgent SVP [ par Konio ] Bonsoir,Aidez moi s'il vous palit. j'ai créé et empaqueté mon projet Vb6 sur une machien WinNT SP6. Lorque je l'ai installé sur une autre machine Nt s


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales