[VBScript] Ouvrir un fichier du Net à partir de son url "http..."

Ouvrir un fichier du Net à partir de son url "http..." [VBScript] - VB/VBA/VBS - Programmation

Marsh Posté le 30-08-2007 à 12:20:36    

Bonjour tout le monde,
 
Je suis actuellement en train de bidouiller un peu de VBScript et pour jouer un peu avec les flux rss, j'aurai bien aimé savoir si il était possible d'ouvrir (en lecture) une page internet à partir de son url.
Pour le moment, je n'ai rien trouvé (que ça soit sur Google ou HFR) donc j'ai un doute concernant l'existence de méthode permettant de faire ce que je recherche.
Est ce que l'un de vous a déjà vu une telle méthode?
Si oui, quelle est son nom?
Merci d'avance?


Message édité par Nouveau_venu le 30-08-2007 à 12:21:03
Reply

Marsh Posté le 30-08-2007 à 12:20:36   

Reply

Marsh Posté le 30-08-2007 à 13:42:40    

Pour vbscript je suppose qu'il faut créer un objet « navigateur ».
Regarde du côté de ce lien si tu te contente d'IE : http://www.vbfrance.com/infomsg_OU [...] 39394.aspx

 

Il y a aussi les « Microsoft Internet Controls » (shdocvw.dll) qui doivent permettre de le faire.
À plus « bas » niveau j'ai vu aussi « Microsoft WinHTTP Services, v5.1 » mais je ne connais pas ; ça ne rentre peut-être pas dans tes besoins.

 

Dans un contexte VBA/VB6 j'aurais plutôt conseillé le « Microsot Internet Transfer Control » (MSINET.OCX) mais il ne semble pas fonctionner en référence, seulement en control supplémentaire à ajouter dans une feuille de formulaire, donc pour vbscript ça semble cuit.


Message édité par tegu le 30-08-2007 à 13:43:23
Reply

Marsh Posté le 30-08-2007 à 14:08:35    

Ok
Merci beaucoup.
 
Pour le moment, j'ai juste bien regardé la première manip sur laquelle j'étais déjà tombé : en fait il permet de lancer un IE sur la page dont on a l'adresse. Moi ce que je souhaiterai, ça serait un truc pour ouvrir le fichier en VBScript directement, un peu comme un :

Code :
  1. set FSO1 = CreateObject("Scripting.FileSystemObject" )
  2. set FTest = FSO1.OpenTextFile("http://www.monsite.com/mondossier/mapage.html",1)


Spoiler :

mais qui marcherait.  :pt1cable:


 
J'ai regardé vite fait pour le shdocvw.dll mais j'ai pas tout compris donc je regarde ça plus en détail ce soir.
 
Encore merci.

Reply

Marsh Posté le 04-09-2007 à 15:26:07    

voila un bout de code :)
 
If InStr(fil, "http://" ) Then
    With Inet1
        .AccessType = icUseDefault
        .Protocol = icHTTP
        aBytes = .OpenURL(fil, icByteArray)
        Do Until Not (.StillExecuting)
           DoEvents
        Loop
    End With
 
    FF = FreeFile
    Open App.Path & "\http.txt" For Binary Access Write As FF
    Put #FF, , aBytes()
    Close FF
    Erase aBytes
End if
 
It te faut creer un composant Inet nommé Inet1
 
Dans mon example fil = url de ton fichier
le fichier est ecrit ds \http.txt ds mon cas :)
 

Reply

Marsh Posté le 06-09-2007 à 11:17:33    

Merci, je suis retourné sous Windows pour voir ce que ça donne.
J'ai donc adapté en  

Code :
  1. fil = "http://www.google.fr"
  2. fichier = "toto.txt"
  3. If InStr(fil, "http://" ) Then
  4.     With Inet1
  5.         .AccessType = icUseDefault
  6.         .Protocol = icHTTP
  7.         aBytes = .OpenURL(fil, icByteArray)
  8.         Do Until Not (.StillExecuting)
  9.            DoEvents
  10.         Loop
  11.     End With
  12.  
  13.     FF = FreeFile
  14.     Open App.Path & "\" & fichier For Binary Write As #FF
  15.     Put #FF, , aBytes()
  16.     Close FF
  17.     Erase aBytes
  18. End if


 
Et j'ai droit à une erreur de type
Fin d'instruction attendue à la ligne 15 caractère 35 (qui correspond au "F" de "For binary..." ).
 
Je ne comprend pas trop parce quand je regarde la syntaxe pour l'ouverture en binaire ( ici par exemple) et que je teste leur code

Code :
  1. nFileNum = FreeFile
  2. Open "C:\toto.txt" For Binary Access Write Lock Read Write As #nFileNum
  3. Close #nFileNum


Bah j'ai le même problème...
 
Si quelqu'un voit d'où ça peut bien venir...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed