 |
Publicité
|
L'API ShellExecute permet d'ouvrir un document dans le programme qui lui est associé. En effet, cette API se base sur l'extension du document pour trouver le programme, par ex TEST.XLS va être ouvert par EXCEL.
On peut aussi utiliser cette API pour ouvrir le navigateur par défaut sur une adresse URL précise comme par exemple avec la fonction suivante :
Function StartDoc(DocName As String) As Long
Dim Scr_hDC As Long
Scr_hDC = GetDesktopWindow()
StartDoc = ShellExecute(Scr_hDC, "Open", DocName, "", "C:\", SW_SHOWNORMAL)
End Function
Et dans une procédure :
Dim Ret as long
Ret = StartDoc("c:\test\test.xls") ' ouvre test.xls avec Excel
ou bien encore :
Ret = StartDoc("http://www.devparadise.com/") ' ouvre le site developer's paradise avec IE, Netscape ...
Ret = StartDoc("mailto:annonceur@devparadise.com") ' création d'un nouveau message pour annonceur@devparadise.com
If Ret <= 32 Then
'il y a une erreur --> traitement
Select Case Ret
Case SE_ERR_FNF
msg = "Fichier introuvable"
Case SE_ERR_PNF
msg = "Path introuvable"
Case SE_ERR_ACCESSDENIED
msg = "Acces refusé"
Case SE_ERR_OOM
msg = "Mémoire insuffisante"
Case SE_ERR_DLLNOTFOUND
msg = "DLL introuvable"
Case SE_ERR_SHARE
msg = "Violation de partage"
Case SE_ERR_ASSOCINCOMPLETE
msg = "Association de fichier incomplete ou invalide"
Case SE_ERR_DDETIMEOUT
msg = "Liaison DDE : Temps dépassé"
Case SE_ERR_DDEFAIL
msg = "Transaction DDE impossible"
Case SE_ERR_DDEBUSY
msg = "Liaison DDE occupée"
Case SE_ERR_NOASSOC
msg = "Pas d'association pour cette extention de fichier"
Case ERROR_BAD_FORMAT
msg = "Fichier EXE invalide"
Case Else
msg = "Erreur inconnue"
End Select
MsgBox msg
End If
Si vous remplacez la commande "Open" par "Print" le document sera directement imprimé.
L'exemple complet (les sources sont inclus) est disponible à http://www.devparadise.com/cgi-bin/ devsrc2.pl?Conf=r&ID=72 . Cet exemple montre l'utilisation de ShellExecute pour créer un contrôle OCX permettant de créer un lien Hypertexte vers une url, document ...
Nous venons de mettre en ligne une DLL active X permettant de faire en VB en autres des envois de mails par SMTP, du reverse IP disponible à http://www.devparadise.com/cgi-bin/ devsrc2.pl?Conf=r&ID=71 ...
NB : Les exemples fournis sont en ASP mais trés facilement transposable.
|