'************************************************************************************* '*** Fonction de Vérification des fichiers InterOp (ex : PDFCreator) ***************** '************************************************************************************* '== Entrée : '== NomProg : Le nom du programme qui utilisera l'InterOp '== NomApp : Le nom + path de l'application à charger '== NomDll : Le nom du fichier (avec le .DLL) (qui doit exister à coté du prog) ' '== FichierDeBase32 : Le fichier qui doit générer la DLL. (Exe ou autre) '== FichierDeBase64 : Le fichier qui doit générer la DLL. (Exe ou autre) '== '== '== Sortie '== NomFichier : Le chemin complet + le nom.dll du programme compilé sinon retourne "" '== '== '************************************************************************************* Public Function VerifieInterOp(ByVal NomProg As String, _ ByVal NomApp As String, _ ByVal NomDll As String, _ ByVal FichierDeBase32 As String, _ ByVal FichierDeBase64 As String) As Boolean Dim OkRetour As Boolean = False Dim NomFichierInterOp As String = NomApp.Remove(NomApp.LastIndexOf(NomProg)) & NomDll If Not (IO.File.Exists(NomFichierInterOp)) Then Dim NomFichierTLPImp As String Dim NomFichierBaseDLL As String If IntPtr.Size > 4 Then '64 bits NomFichierTLPImp = "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\tlbimp.exe" NomFichierBaseDLL = FichierDeBase64 Else '32bits NomFichierTLPImp = "C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin\tlbimp.exe" NomFichierBaseDLL = FichierDeBase32 End If Dim RetourProcess As System.Diagnostics.Process Try MsgBox("Le programme va essayer de créer le lien avec le programme : " & vbCrLf & _ NomFichierBaseDLL & vbCrLf & _ "Une fenêtre va s'ouvrir et le programme va attendre sa fermeture.", _ vbOKOnly & vbCritical, "Information") Dim ParamTxt = """" & NomFichierBaseDLL & """" & " /out:" & """" & NomFichierInterOp & """" RetourProcess = Process.Start(NomFichierTLPImp, ParamTxt) Do While RetourProcess.HasExited = False GestionAUTOCAD.EcrireSurLigneDeCommande(vbCrLf & "En attente du programme de lien...") Loop GestionAUTOCAD.EcrireSurLigneDeCommande(vbCrLf & "Fin du programme de lien, analyse du résultat.") If RetourProcess.ExitCode = 0 Then 'vérification si le fichier existe If IO.File.Exists(NomFichierInterOp) = False Then MsgBox("Le fichier " & NomFichierInterOp & " n'a pas été créé" & vbCrLf & _ "Contacter le responsable pour vérifier ce problème.", _ vbOKOnly & vbCritical, "Erreur de Programmation") GestionAUTOCAD.EcrireSurLigneDeCommande(vbCrLf & "Programme : " & NomFichierTLPImp) GestionAUTOCAD.EcrireSurLigneDeCommande(vbCrLf & "Paramêtre : " & ParamTxt) Return False Else Return True End If End If Return False Catch ex As Exception MsgBox("Le programme de lien InterOP " & NomFichierTLPImp & "est introuvable." & vbCrLf & _ "Contacter le responsable pour vérifier le bon répertoire." & vbCrLf & vbCrLf & _ "", vbOKOnly & vbCritical, "Erreur de Programmation") Return False End Try Else Return True End If End Function