cs_Waldo2188
Messages postés142Date d'inscriptionjeudi 12 février 2004StatutMembreDernière intervention20 mai 2008
-
14 févr. 2005 à 14:53
cs_Cheval
Messages postés81Date d'inscriptiondimanche 21 juillet 2002StatutMembreDernière intervention11 octobre 2015
-
28 mars 2005 à 19:27
Salut à tous
Je suis donc en stage où l’on ma demandé de créer un
contrôle active X permettant d’imprimer un fichier qui lui est passé en
paramètre.
Le contrôle est appelé dans une page web par une fonction
javascript.
Ce contrôle doit pouvoir imprimé deux types de
fichier :
-
Document Word avec comme extension RTF
-
Document Acrobat Reader avec comme extension PDF
Mon Problème :
Je bloque sur l’utilisation de certaines API, car le
contrôle Active X doit être capable d’imprimer un fichier au forma PDF. Pour
cela j’ouvre le fichier passé en paramètre grâce à la fonction « ShellExecute ». Par la suite je
dois fermer cette application, pour cela il faut récupérer son Handle, mais je
n’y arrive pas du tout.
J’ai donc récupéré du code sur Internet qui permet de lister
toute les applications en cours. Sur celui-ci je pouvais récupérer le Handle de
Adobe Acrobat Reader. J’ai donc recréé le même code sur mon contrôle active X,
mais cela ne marche pas. Je ne vois pas d’où viens mon problème.
Je vous met ci dessous le code de mon contrôle active X (Il
a besoins de deux contrôle Timer)
'utilisé
pour word
Dim docword
As New Word.Application
'utilisé pour Adobe Acrobat Reader
'Ouvre AAR
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
'Permet de fermer la fenetre
Private
Declare Function PostMessage Lib "user32.dll" Alias
"PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam
As Long, ByVal lParam As Long) As Long
' La fonction GetParent recherche le handle du parent
propriétaire de la fenêtre indiquée.
Private
Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
' La fonction GetWindow recherche le handle de la fenêtre
active
Private
Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal
wCmd As Long) As Long
' La fonction GetWindowTextLength recherche la longueur, en
caractères, du texte de barre du titre de la fenêtre indiquée (si la fenêtre a
une barre de titre). Si la fenêtre indiquée est une commande, la fonction
recherche la longueur du texte dans la commande. Cependant, GetWindowTextLength ne peut pas rechercher la longueur
du texte d'une commande d'édition dans une autre application.
Private
Declare Function GetWindowTextLength Lib "user32" Alias
"GetWindowTextLengthA" (ByVal hwnd As Long) As Long
' La fonction GetWindowText copie le texte de la barre du
titre de la fenêtre indiquée (si elle a un) dans un buffer. Si la fenêtre
indiquée est une commande, le texte de la commande est copié. Cependant,
GetWindowText ne peut pas rechercher le texte d'une commande dans une autre
application.
Private
Declare Function GetWindowText Lib "user32" Alias
"GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal
cch As Long) As Long
Private
meHwnd As Long
Private
Const GW_HWNDFIRST = 0
Private
Const GW_HWNDNEXT = 2
Public Sub
GoImprime(unChemin As String)
'teste permettant de savoir si le fichier est un RTF ou un
PDF
Dim teste
As String
Dim toto As
Boolean
teste =
Right$(unChemin, 3)
If teste "pdf" Or teste "PDF" Then
Dim Retour As Long
'la fonction
ShellExecute va ouvrir l'application adapté à l'extention et le paramètre Print
va permetre d'imprimer, l'application sara ensuite fermé
pepsidrinker
Messages postés151Date d'inscriptionmardi 12 octobre 2004StatutMembreDernière intervention15 avril 2009 18 févr. 2005 à 01:29
Pepsidrinker
Tu peux toujours essayer , avec, Findwindow comme API, (pour avoir le classename, utilise un APIspyer ...j'en ai un si tu le veux).
Grace a sa, tu vas pouvoir récuperer tout les hwnd des fenetre utilisant Acrobat Reader. Ensuite, tu passe le handle pour l'imprimerie..
cs_Cheval
Messages postés81Date d'inscriptiondimanche 21 juillet 2002StatutMembreDernière intervention11 octobre 2015 28 mars 2005 à 19:27
Bonjour a tous,
J'ai creer un prog en VB pour extraire les icone.
Tou va bien sauf que si je demande d'extraire toutes les icones des dll du systeme il y en a 3312 en gros et à 1200 j'ai memoire insuffisante.
Quelqu'un pourait-il me donner la solution pour fermer les buffer qui se créer.
Un fois les icones sauvegardées je voudrai fermer ou effacer les buffer inutils.
Devant etre absent quelque temp pourriez vous me faire parvenir les réponses sur
mon mel perso : serge.cheval@laposte.net