FireFox ne dispose d'aucun objet scriptable documenté ...
En fait, si il y a, pour FF.
FireFox ne dispose d'aucun objet scriptable documenté ...
En fait, si il y a, pour FF.
FireFox ne dispose d'aucun objet scriptable documenté ...
En fait, si il y a, pour FF.
Je suis en entreprise. Le navigateur utilisé est IE6.
Je veux capturer une page d'une application intranet pour en exploiter les
données (tableaux HTML)
dans le cadre d'un projet, pas pour capturer les images (quelques petits
pictogrammes sans aucun
intérêt !)
La capture des données peut se faire en récupérant les fichiers
temporaires de IE6 mais c'est une
méthode "crade" et pas forcément fiable si on ne nettoie pas au préalable
les vieux fichiers.
Je voudrais faire ce que l'on fait avec le menu "Fichier/Enregistrer
sous..." de IE6 qui est
inaccessible (même en faisant <ALT>< F> pour le faire apparaître, bloqué à
cause du type de
fenêtrage de l'application). D'autre part, il n'y a pas de raccourci
clavier pour Enregistrer
sous...
Si vous avez une idée... :-|
Ted
Je suis en entreprise. Le navigateur utilisé est IE6.
Je veux capturer une page d'une application intranet pour en exploiter les
données (tableaux HTML)
dans le cadre d'un projet, pas pour capturer les images (quelques petits
pictogrammes sans aucun
intérêt !)
La capture des données peut se faire en récupérant les fichiers
temporaires de IE6 mais c'est une
méthode "crade" et pas forcément fiable si on ne nettoie pas au préalable
les vieux fichiers.
Je voudrais faire ce que l'on fait avec le menu "Fichier/Enregistrer
sous..." de IE6 qui est
inaccessible (même en faisant <ALT>< F> pour le faire apparaître, bloqué à
cause du type de
fenêtrage de l'application). D'autre part, il n'y a pas de raccourci
clavier pour Enregistrer
sous...
Si vous avez une idée... :-|
Ted
Je suis en entreprise. Le navigateur utilisé est IE6.
Je veux capturer une page d'une application intranet pour en exploiter les
données (tableaux HTML)
dans le cadre d'un projet, pas pour capturer les images (quelques petits
pictogrammes sans aucun
intérêt !)
La capture des données peut se faire en récupérant les fichiers
temporaires de IE6 mais c'est une
méthode "crade" et pas forcément fiable si on ne nettoie pas au préalable
les vieux fichiers.
Je voudrais faire ce que l'on fait avec le menu "Fichier/Enregistrer
sous..." de IE6 qui est
inaccessible (même en faisant <ALT>< F> pour le faire apparaître, bloqué à
cause du type de
fenêtrage de l'application). D'autre part, il n'y a pas de raccourci
clavier pour Enregistrer
sous...
Si vous avez une idée... :-|
Ted
Par hasard, est-ce que le bouton menu "contextuel" de Windows, entre la
touche Control et le logo Windows vers la droite du clavier ne marcherait pas
?
Autre piste : si tu as l'URL, pourquoi ne pas ouvrir IE6 toi-même et la
coller dans la barre d'adresse, ainsi tu récupérerais les menus traditionnels.Je suis en entreprise. Le navigateur utilisé est IE6.
Je veux capturer une page d'une application intranet pour en exploiter les données (tableaux
HTML)
dans le cadre d'un projet, pas pour capturer les images (quelques petits pictogrammes sans aucun
intérêt !)
La capture des données peut se faire en récupérant les fichiers temporaires de IE6 mais c'est une
méthode "crade" et pas forcément fiable si on ne nettoie pas au préalable les vieux fichiers.
Je voudrais faire ce que l'on fait avec le menu "Fichier/Enregistrer sous..." de IE6 qui est
inaccessible (même en faisant <ALT>< F> pour le faire apparaître, bloqué à cause du type de
fenêtrage de l'application). D'autre part, il n'y a pas de raccourci clavier pour Enregistrer
sous...
Si vous avez une idée... :-|
Ted
" teddy" a écrit dans le message de news:
%23jWjb%Bonjour à tous,
J'aurais besoin de capturer une page affichée dans Internet Explorer 6 par script VBS si
possible.
Cette page occupe tout l'écran (pas de bandeau avec le menu horizontal ni les icônes) et
utilise
des frames.
De plus, un script javascript interdit la touche droite de la souris et il n'y a pas de
raccourci
dans IE6 pour faire "Enregistrer sous" en utilisant des SendKeys().
J'ai déjà essayé avec un WebBrowser sous VB et je n'arrive pas à sauvegarder la page entière :
' Récupération du Code Source du document chargé dans WebBrowser
Dim s As String
s = WebBrowser1.Document.All.tags("html").Item.innerHTML
Je ne récupère qu'une partie de la page affichée dans le WebBrowser.
J'ai aussi fouillé dans les fichiers de Local SettingsTemporary Internet Files mais on ne
récupère que des bribes.
Si vous avez une idée pour résoudre ce genre de problème en VB, VBS, ou autre je suis preneur !
Teddy
Par hasard, est-ce que le bouton menu "contextuel" de Windows, entre la
touche Control et le logo Windows vers la droite du clavier ne marcherait pas
?
Autre piste : si tu as l'URL, pourquoi ne pas ouvrir IE6 toi-même et la
coller dans la barre d'adresse, ainsi tu récupérerais les menus traditionnels.
Je suis en entreprise. Le navigateur utilisé est IE6.
Je veux capturer une page d'une application intranet pour en exploiter les données (tableaux
HTML)
dans le cadre d'un projet, pas pour capturer les images (quelques petits pictogrammes sans aucun
intérêt !)
La capture des données peut se faire en récupérant les fichiers temporaires de IE6 mais c'est une
méthode "crade" et pas forcément fiable si on ne nettoie pas au préalable les vieux fichiers.
Je voudrais faire ce que l'on fait avec le menu "Fichier/Enregistrer sous..." de IE6 qui est
inaccessible (même en faisant <ALT>< F> pour le faire apparaître, bloqué à cause du type de
fenêtrage de l'application). D'autre part, il n'y a pas de raccourci clavier pour Enregistrer
sous...
Si vous avez une idée... :-|
Ted
" teddy" <teddy@orange.com> a écrit dans le message de news:
%23jWjb%23yPHHA.4244@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
J'aurais besoin de capturer une page affichée dans Internet Explorer 6 par script VBS si
possible.
Cette page occupe tout l'écran (pas de bandeau avec le menu horizontal ni les icônes) et
utilise
des frames.
De plus, un script javascript interdit la touche droite de la souris et il n'y a pas de
raccourci
dans IE6 pour faire "Enregistrer sous" en utilisant des SendKeys().
J'ai déjà essayé avec un WebBrowser sous VB et je n'arrive pas à sauvegarder la page entière :
' Récupération du Code Source du document chargé dans WebBrowser
Dim s As String
s = WebBrowser1.Document.All.tags("html").Item.innerHTML
Je ne récupère qu'une partie de la page affichée dans le WebBrowser.
J'ai aussi fouillé dans les fichiers de Local SettingsTemporary Internet Files mais on ne
récupère que des bribes.
Si vous avez une idée pour résoudre ce genre de problème en VB, VBS, ou autre je suis preneur !
Teddy
Par hasard, est-ce que le bouton menu "contextuel" de Windows, entre la
touche Control et le logo Windows vers la droite du clavier ne marcherait pas
?
Autre piste : si tu as l'URL, pourquoi ne pas ouvrir IE6 toi-même et la
coller dans la barre d'adresse, ainsi tu récupérerais les menus traditionnels.Je suis en entreprise. Le navigateur utilisé est IE6.
Je veux capturer une page d'une application intranet pour en exploiter les données (tableaux
HTML)
dans le cadre d'un projet, pas pour capturer les images (quelques petits pictogrammes sans aucun
intérêt !)
La capture des données peut se faire en récupérant les fichiers temporaires de IE6 mais c'est une
méthode "crade" et pas forcément fiable si on ne nettoie pas au préalable les vieux fichiers.
Je voudrais faire ce que l'on fait avec le menu "Fichier/Enregistrer sous..." de IE6 qui est
inaccessible (même en faisant <ALT>< F> pour le faire apparaître, bloqué à cause du type de
fenêtrage de l'application). D'autre part, il n'y a pas de raccourci clavier pour Enregistrer
sous...
Si vous avez une idée... :-|
Ted
" teddy" a écrit dans le message de news:
%23jWjb%Bonjour à tous,
J'aurais besoin de capturer une page affichée dans Internet Explorer 6 par script VBS si
possible.
Cette page occupe tout l'écran (pas de bandeau avec le menu horizontal ni les icônes) et
utilise
des frames.
De plus, un script javascript interdit la touche droite de la souris et il n'y a pas de
raccourci
dans IE6 pour faire "Enregistrer sous" en utilisant des SendKeys().
J'ai déjà essayé avec un WebBrowser sous VB et je n'arrive pas à sauvegarder la page entière :
' Récupération du Code Source du document chargé dans WebBrowser
Dim s As String
s = WebBrowser1.Document.All.tags("html").Item.innerHTML
Je ne récupère qu'une partie de la page affichée dans le WebBrowser.
J'ai aussi fouillé dans les fichiers de Local SettingsTemporary Internet Files mais on ne
récupère que des bribes.
Si vous avez une idée pour résoudre ce genre de problème en VB, VBS, ou autre je suis preneur !
Teddy
" teddy" a écrit dans le message de
news:Je suis en entreprise. Le navigateur utilisé est IE6.
Je veux capturer une page d'une application intranet pour en exploiter les
données (tableaux HTML)dans le cadre d'un projet, pas pour capturer les images (quelques petits
pictogrammes sans aucunintérêt !)
La capture des données peut se faire en récupérant les fichiers
temporaires de IE6 mais c'est uneméthode "crade" et pas forcément fiable si on ne nettoie pas au préalable
les vieux fichiers.
Je voudrais faire ce que l'on fait avec le menu "Fichier/Enregistrer
sous..." de IE6 qui estinaccessible (même en faisant <ALT>< F> pour le faire apparaître, bloqué à
cause du type defenêtrage de l'application). D'autre part, il n'y a pas de raccourci
clavier pour Enregistrersous...
Si vous avez une idée... :-|
Ted
Bonsoir,
avec ceci celà devrait fonctionner ( je m'en sers pour récupérer le niveau
des consommables d'une Imp. )
----------------------------------------------------------------------------
------------------------------
Set objExplorer = CreateObject("InternetExplorer.Application")
objExplorer.Navigate(http://Mon_URL)
'objExplorer.Visible= 1
Do Until objExplorer.readystate = 4
WScript.sleep 10
Loop
Toto = objExplorer.Document.Body.InnerText
objExplorer.Quit
Set objExplorer = Nothing
WScript.Echo Toto
----------------------------------------------------------------------------
--------------------------------
Evidemment, on peut effectuer un traitement sur la chaine récupérée pour
extraire les infows qui nous interessent
Cdt
Laurent
" teddy" <teddy@orange.com> a écrit dans le message de
news:ungN0sLQHHA.2096@TK2MSFTNGP05.phx.gbl...
Je suis en entreprise. Le navigateur utilisé est IE6.
Je veux capturer une page d'une application intranet pour en exploiter les
données (tableaux HTML)
dans le cadre d'un projet, pas pour capturer les images (quelques petits
pictogrammes sans aucun
intérêt !)
La capture des données peut se faire en récupérant les fichiers
temporaires de IE6 mais c'est une
méthode "crade" et pas forcément fiable si on ne nettoie pas au préalable
les vieux fichiers.
Je voudrais faire ce que l'on fait avec le menu "Fichier/Enregistrer
sous..." de IE6 qui est
inaccessible (même en faisant <ALT>< F> pour le faire apparaître, bloqué à
cause du type de
fenêtrage de l'application). D'autre part, il n'y a pas de raccourci
clavier pour Enregistrer
sous...
Si vous avez une idée... :-|
Ted
Bonsoir,
avec ceci celà devrait fonctionner ( je m'en sers pour récupérer le niveau
des consommables d'une Imp. )
----------------------------------------------------------------------------
------------------------------
Set objExplorer = CreateObject("InternetExplorer.Application")
objExplorer.Navigate(http://Mon_URL)
'objExplorer.Visible= 1
Do Until objExplorer.readystate = 4
WScript.sleep 10
Loop
Toto = objExplorer.Document.Body.InnerText
objExplorer.Quit
Set objExplorer = Nothing
WScript.Echo Toto
----------------------------------------------------------------------------
--------------------------------
Evidemment, on peut effectuer un traitement sur la chaine récupérée pour
extraire les infows qui nous interessent
Cdt
Laurent
" teddy" a écrit dans le message de
news:Je suis en entreprise. Le navigateur utilisé est IE6.
Je veux capturer une page d'une application intranet pour en exploiter les
données (tableaux HTML)dans le cadre d'un projet, pas pour capturer les images (quelques petits
pictogrammes sans aucunintérêt !)
La capture des données peut se faire en récupérant les fichiers
temporaires de IE6 mais c'est uneméthode "crade" et pas forcément fiable si on ne nettoie pas au préalable
les vieux fichiers.
Je voudrais faire ce que l'on fait avec le menu "Fichier/Enregistrer
sous..." de IE6 qui estinaccessible (même en faisant <ALT>< F> pour le faire apparaître, bloqué à
cause du type defenêtrage de l'application). D'autre part, il n'y a pas de raccourci
clavier pour Enregistrersous...
Si vous avez une idée... :-|
Ted
Bonsoir,
avec ceci celà devrait fonctionner ( je m'en sers pour récupérer le niveau
des consommables d'une Imp. )
----------------------------------------------------------------------------
------------------------------
Set objExplorer = CreateObject("InternetExplorer.Application")
objExplorer.Navigate(http://Mon_URL)
'objExplorer.Visible= 1
Do Until objExplorer.readystate = 4
WScript.sleep 10
Loop
Toto = objExplorer.Document.Body.InnerText
objExplorer.Quit
Set objExplorer = Nothing
WScript.Echo Toto
----------------------------------------------------------------------------
--------------------------------
Evidemment, on peut effectuer un traitement sur la chaine récupérée pour
extraire les infows qui nous interessent
Cdt
Laurent
Bonjour à tous,
J'aurais besoin de capturer une page affichée dans Internet Explorer 6 par
script VBS si possible.
Cette page occupe tout l'écran (pas de bandeau avec le menu horizontal ni
les icônes) et utilise des frames.
De plus, un script javascript interdit la touche droite de la souris et il
n'y a pas de raccourci dans IE6 pour faire "Enregistrer sous" en utilisant
des SendKeys().
J'ai déjà essayé avec un WebBrowser sous VB et je n'arrive pas à
sauvegarder la page entière :
' Récupération du Code Source du document chargé dans WebBrowser
Dim s As String
s = WebBrowser1.Document.All.tags("html").Item.innerHTML
Je ne récupère qu'une partie de la page affichée dans le WebBrowser.
J'ai aussi fouillé dans les fichiers de Local SettingsTemporary Internet
Files mais on ne récupère que des bribes.
Si vous avez une idée pour résoudre ce genre de problème en VB, VBS, ou
autre je suis preneur !
Teddy
Bonjour à tous,
J'aurais besoin de capturer une page affichée dans Internet Explorer 6 par
script VBS si possible.
Cette page occupe tout l'écran (pas de bandeau avec le menu horizontal ni
les icônes) et utilise des frames.
De plus, un script javascript interdit la touche droite de la souris et il
n'y a pas de raccourci dans IE6 pour faire "Enregistrer sous" en utilisant
des SendKeys().
J'ai déjà essayé avec un WebBrowser sous VB et je n'arrive pas à
sauvegarder la page entière :
' Récupération du Code Source du document chargé dans WebBrowser
Dim s As String
s = WebBrowser1.Document.All.tags("html").Item.innerHTML
Je ne récupère qu'une partie de la page affichée dans le WebBrowser.
J'ai aussi fouillé dans les fichiers de Local SettingsTemporary Internet
Files mais on ne récupère que des bribes.
Si vous avez une idée pour résoudre ce genre de problème en VB, VBS, ou
autre je suis preneur !
Teddy
Bonjour à tous,
J'aurais besoin de capturer une page affichée dans Internet Explorer 6 par
script VBS si possible.
Cette page occupe tout l'écran (pas de bandeau avec le menu horizontal ni
les icônes) et utilise des frames.
De plus, un script javascript interdit la touche droite de la souris et il
n'y a pas de raccourci dans IE6 pour faire "Enregistrer sous" en utilisant
des SendKeys().
J'ai déjà essayé avec un WebBrowser sous VB et je n'arrive pas à
sauvegarder la page entière :
' Récupération du Code Source du document chargé dans WebBrowser
Dim s As String
s = WebBrowser1.Document.All.tags("html").Item.innerHTML
Je ne récupère qu'une partie de la page affichée dans le WebBrowser.
J'ai aussi fouillé dans les fichiers de Local SettingsTemporary Internet
Files mais on ne récupère que des bribes.
Si vous avez une idée pour résoudre ce genre de problème en VB, VBS, ou
autre je suis preneur !
Teddy
Bonjour à tous,
Bonjour,
je pensais essayer de vous répondre à titre posthume mais apparement vous vivez toujours :-)J'aurais besoin de capturer une page affichée dans Internet Explorer 6 par script VBS si
possible.
Cette page occupe tout l'écran (pas de bandeau avec le menu horizontal ni les icônes) et utilise
des frames.
De plus, un script javascript interdit la touche droite de la souris et il n'y a pas de raccourci
dans IE6 pour faire "Enregistrer sous" en utilisant des SendKeys().
Pas besoin de cette horreur de SendKeys :-) pour faire ça, vous pouvez le faire via le DOM, avec
la méthode execCommand, par exemple :
<!---8<---Sauvez_Moi.HTA---Jean-JMST-Belgium--->
<script language="vbs" defer>
document.execCommand "SaveAs",False,"c:fichier.htm"
</script>
<b>test</b>
<!---8<---Sauvez_Moi.HTA---Jean-JMST-Belgium--->
Comme j'ai lu plus loin que vous étiez en Intranet je vous conseille de le faire dans un fichier
HTA plutôt que HTM pour éviter les dialogues d'alerte et autres restrictions du contexte Internet.
C'est le mode "silencieux" pour les HTA.
En mettant le second paramètre sur True vous affichez la boîte de dialogue de "Enregistrer sous
...".
(Dans un HTM, True ou False affichera la boîte de dialogue)J'ai déjà essayé avec un WebBrowser sous VB et je n'arrive pas à sauvegarder la page entière :
' Récupération du Code Source du document chargé dans WebBrowser
Dim s As String
s = WebBrowser1.Document.All.tags("html").Item.innerHTML
Je ne récupère qu'une partie de la page affichée dans le WebBrowser.
Vous devriez obtenir le reste en utilisant outerHTML au lieu de innerHTML.
Pour assurer un peu j'utiliserais la propriété "documentElement" de l'objet "document" qui
retourne le plus haut élément de la hiérarchie HTML du document.
Au total un truc du genre :
s=WebBrowser1.Document.documentElement.outerHTML
(en admettant que vous récupérez cette valeur dans l'événement OnDocumentComplete du WebBrowser
par exemple).
Maintenant vous parlez aussi de cadres : avec votre code ou celui ci-dessus vous ne récupérerez
que la page de cadres normalement.
Soit vous chargez la cible du cadre dans le WebBrowser (le plus simple) et vous faites comme ci
dessus en VB (on pourrait aussi utiliser xmlhttp / ADO dans ce cas mais je ne vais pas faire trop
long, voir ces liens :
http://groups.google.com/group/microsoft.public.fr.scripting/msg/b4429459c08cbec5?dmode=source&hl=fr
http://groups.google.com/group/microsoft.public.fr.scripting/msg/bf1b2ec21a100ec3?dmode=source&hl=fr
)
Soit vous accédez au document du cadre en itérant la collection des cadres de la page de cadres
avec la collection frames (plus complexe parceque vous devrez vous assurez que la pages de cadre
soit chargée, puis que le document du cadre soit chargé avant de pouvoir récupérer son contenu),
ce qui semble être votre cas.
Ca donne un truc comme ceci en HTA / VBS :
°on charge la page de cadres (v:frames.htm) dans une iframe et on accède au contenu des cadres
via un script.
On accède ici au *deuxième* cadre et son contenu sera sauvé dans le fichier o:fichier.htm
(changez le chemin en fonction)°
<!---Sauver_Cadre.HTA---Jean-JMST-Belgium--->
<script language="vbs">
Sub Document_OnReadyStateChange
If LCase(Document.ReadyState)="complete" Then
Set docIframe=window.frames(0).document
While Not LCase(docIframe.readystate)="complete":Wend
Set docFrame=docIframe.frames(1).document
While Not LCase(docFrame.readystate)="complete":Wend
docFrame.execCommand "SaveAs",False,"o:fichier.htm"
Alert docFrame.documentElement.outerHTML
End If
End Sub
</script>
<iframe src='v:frames.htm' />
<!---Sauver_Cadre.HTA---Jean-JMST-Belgium--->
Je spécifie juste au passage que le premier test readyState pourrait être évité en ajoutant
l'attribut defer dans la balise script.
Voilà en gros pour le principe.
On pourrait aussi imaginer récupérer directement le contenu du tableau (ou les données qui vous
intéressent) et sauver les données dans un fichier à l'aide de FSO, mais j'ai assez blablaté pour
l'instant :-)J'ai aussi fouillé dans les fichiers de Local SettingsTemporary Internet Files mais on ne
récupère que des bribes.
Ca on oublie : le TIF c'est pas TOP :-)Si vous avez une idée pour résoudre ce genre de problème en VB, VBS, ou autre je suis preneur !
Teddy
Amicalement,
--
Jean - JMST
Belgium
Bonjour à tous,
Bonjour,
je pensais essayer de vous répondre à titre posthume mais apparement vous vivez toujours :-)
J'aurais besoin de capturer une page affichée dans Internet Explorer 6 par script VBS si
possible.
Cette page occupe tout l'écran (pas de bandeau avec le menu horizontal ni les icônes) et utilise
des frames.
De plus, un script javascript interdit la touche droite de la souris et il n'y a pas de raccourci
dans IE6 pour faire "Enregistrer sous" en utilisant des SendKeys().
Pas besoin de cette horreur de SendKeys :-) pour faire ça, vous pouvez le faire via le DOM, avec
la méthode execCommand, par exemple :
<!---8<---Sauvez_Moi.HTA---Jean-JMST-Belgium--->
<script language="vbs" defer>
document.execCommand "SaveAs",False,"c:fichier.htm"
</script>
<b>test</b>
<!---8<---Sauvez_Moi.HTA---Jean-JMST-Belgium--->
Comme j'ai lu plus loin que vous étiez en Intranet je vous conseille de le faire dans un fichier
HTA plutôt que HTM pour éviter les dialogues d'alerte et autres restrictions du contexte Internet.
C'est le mode "silencieux" pour les HTA.
En mettant le second paramètre sur True vous affichez la boîte de dialogue de "Enregistrer sous
...".
(Dans un HTM, True ou False affichera la boîte de dialogue)
J'ai déjà essayé avec un WebBrowser sous VB et je n'arrive pas à sauvegarder la page entière :
' Récupération du Code Source du document chargé dans WebBrowser
Dim s As String
s = WebBrowser1.Document.All.tags("html").Item.innerHTML
Je ne récupère qu'une partie de la page affichée dans le WebBrowser.
Vous devriez obtenir le reste en utilisant outerHTML au lieu de innerHTML.
Pour assurer un peu j'utiliserais la propriété "documentElement" de l'objet "document" qui
retourne le plus haut élément de la hiérarchie HTML du document.
Au total un truc du genre :
s=WebBrowser1.Document.documentElement.outerHTML
(en admettant que vous récupérez cette valeur dans l'événement OnDocumentComplete du WebBrowser
par exemple).
Maintenant vous parlez aussi de cadres : avec votre code ou celui ci-dessus vous ne récupérerez
que la page de cadres normalement.
Soit vous chargez la cible du cadre dans le WebBrowser (le plus simple) et vous faites comme ci
dessus en VB (on pourrait aussi utiliser xmlhttp / ADO dans ce cas mais je ne vais pas faire trop
long, voir ces liens :
http://groups.google.com/group/microsoft.public.fr.scripting/msg/b4429459c08cbec5?dmode=source&hl=fr
http://groups.google.com/group/microsoft.public.fr.scripting/msg/bf1b2ec21a100ec3?dmode=source&hl=fr
)
Soit vous accédez au document du cadre en itérant la collection des cadres de la page de cadres
avec la collection frames (plus complexe parceque vous devrez vous assurez que la pages de cadre
soit chargée, puis que le document du cadre soit chargé avant de pouvoir récupérer son contenu),
ce qui semble être votre cas.
Ca donne un truc comme ceci en HTA / VBS :
°on charge la page de cadres (v:frames.htm) dans une iframe et on accède au contenu des cadres
via un script.
On accède ici au *deuxième* cadre et son contenu sera sauvé dans le fichier o:fichier.htm
(changez le chemin en fonction)°
<!---Sauver_Cadre.HTA---Jean-JMST-Belgium--->
<script language="vbs">
Sub Document_OnReadyStateChange
If LCase(Document.ReadyState)="complete" Then
Set docIframe=window.frames(0).document
While Not LCase(docIframe.readystate)="complete":Wend
Set docFrame=docIframe.frames(1).document
While Not LCase(docFrame.readystate)="complete":Wend
docFrame.execCommand "SaveAs",False,"o:fichier.htm"
Alert docFrame.documentElement.outerHTML
End If
End Sub
</script>
<iframe src='v:frames.htm' />
<!---Sauver_Cadre.HTA---Jean-JMST-Belgium--->
Je spécifie juste au passage que le premier test readyState pourrait être évité en ajoutant
l'attribut defer dans la balise script.
Voilà en gros pour le principe.
On pourrait aussi imaginer récupérer directement le contenu du tableau (ou les données qui vous
intéressent) et sauver les données dans un fichier à l'aide de FSO, mais j'ai assez blablaté pour
l'instant :-)
J'ai aussi fouillé dans les fichiers de Local SettingsTemporary Internet Files mais on ne
récupère que des bribes.
Ca on oublie : le TIF c'est pas TOP :-)
Si vous avez une idée pour résoudre ce genre de problème en VB, VBS, ou autre je suis preneur !
Teddy
Amicalement,
--
Jean - JMST
Belgium
Bonjour à tous,
Bonjour,
je pensais essayer de vous répondre à titre posthume mais apparement vous vivez toujours :-)J'aurais besoin de capturer une page affichée dans Internet Explorer 6 par script VBS si
possible.
Cette page occupe tout l'écran (pas de bandeau avec le menu horizontal ni les icônes) et utilise
des frames.
De plus, un script javascript interdit la touche droite de la souris et il n'y a pas de raccourci
dans IE6 pour faire "Enregistrer sous" en utilisant des SendKeys().
Pas besoin de cette horreur de SendKeys :-) pour faire ça, vous pouvez le faire via le DOM, avec
la méthode execCommand, par exemple :
<!---8<---Sauvez_Moi.HTA---Jean-JMST-Belgium--->
<script language="vbs" defer>
document.execCommand "SaveAs",False,"c:fichier.htm"
</script>
<b>test</b>
<!---8<---Sauvez_Moi.HTA---Jean-JMST-Belgium--->
Comme j'ai lu plus loin que vous étiez en Intranet je vous conseille de le faire dans un fichier
HTA plutôt que HTM pour éviter les dialogues d'alerte et autres restrictions du contexte Internet.
C'est le mode "silencieux" pour les HTA.
En mettant le second paramètre sur True vous affichez la boîte de dialogue de "Enregistrer sous
...".
(Dans un HTM, True ou False affichera la boîte de dialogue)J'ai déjà essayé avec un WebBrowser sous VB et je n'arrive pas à sauvegarder la page entière :
' Récupération du Code Source du document chargé dans WebBrowser
Dim s As String
s = WebBrowser1.Document.All.tags("html").Item.innerHTML
Je ne récupère qu'une partie de la page affichée dans le WebBrowser.
Vous devriez obtenir le reste en utilisant outerHTML au lieu de innerHTML.
Pour assurer un peu j'utiliserais la propriété "documentElement" de l'objet "document" qui
retourne le plus haut élément de la hiérarchie HTML du document.
Au total un truc du genre :
s=WebBrowser1.Document.documentElement.outerHTML
(en admettant que vous récupérez cette valeur dans l'événement OnDocumentComplete du WebBrowser
par exemple).
Maintenant vous parlez aussi de cadres : avec votre code ou celui ci-dessus vous ne récupérerez
que la page de cadres normalement.
Soit vous chargez la cible du cadre dans le WebBrowser (le plus simple) et vous faites comme ci
dessus en VB (on pourrait aussi utiliser xmlhttp / ADO dans ce cas mais je ne vais pas faire trop
long, voir ces liens :
http://groups.google.com/group/microsoft.public.fr.scripting/msg/b4429459c08cbec5?dmode=source&hl=fr
http://groups.google.com/group/microsoft.public.fr.scripting/msg/bf1b2ec21a100ec3?dmode=source&hl=fr
)
Soit vous accédez au document du cadre en itérant la collection des cadres de la page de cadres
avec la collection frames (plus complexe parceque vous devrez vous assurez que la pages de cadre
soit chargée, puis que le document du cadre soit chargé avant de pouvoir récupérer son contenu),
ce qui semble être votre cas.
Ca donne un truc comme ceci en HTA / VBS :
°on charge la page de cadres (v:frames.htm) dans une iframe et on accède au contenu des cadres
via un script.
On accède ici au *deuxième* cadre et son contenu sera sauvé dans le fichier o:fichier.htm
(changez le chemin en fonction)°
<!---Sauver_Cadre.HTA---Jean-JMST-Belgium--->
<script language="vbs">
Sub Document_OnReadyStateChange
If LCase(Document.ReadyState)="complete" Then
Set docIframe=window.frames(0).document
While Not LCase(docIframe.readystate)="complete":Wend
Set docFrame=docIframe.frames(1).document
While Not LCase(docFrame.readystate)="complete":Wend
docFrame.execCommand "SaveAs",False,"o:fichier.htm"
Alert docFrame.documentElement.outerHTML
End If
End Sub
</script>
<iframe src='v:frames.htm' />
<!---Sauver_Cadre.HTA---Jean-JMST-Belgium--->
Je spécifie juste au passage que le premier test readyState pourrait être évité en ajoutant
l'attribut defer dans la balise script.
Voilà en gros pour le principe.
On pourrait aussi imaginer récupérer directement le contenu du tableau (ou les données qui vous
intéressent) et sauver les données dans un fichier à l'aide de FSO, mais j'ai assez blablaté pour
l'instant :-)J'ai aussi fouillé dans les fichiers de Local SettingsTemporary Internet Files mais on ne
récupère que des bribes.
Ca on oublie : le TIF c'est pas TOP :-)Si vous avez une idée pour résoudre ce genre de problème en VB, VBS, ou autre je suis preneur !
Teddy
Amicalement,
--
Jean - JMST
Belgium
HTA execCommand
HTA execCommand
HTA execCommand