Je n'ai pas encore eu le temps de creuser sur un GET suivi d'un POST.
Je n'ai pas encore eu le temps de creuser sur un GET suivi d'un POST.
Salut
Après quelques recherches, je pense avoir un résultat positif comme suit
Bonne journée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub TestCookies() Dim WinHttpReq As New WinHttp.WinHttpRequest Dim Cookie As String WinHttpReq.Open "GET", "http://inventaire-forestier.ign.fr/cartov2/carto/afficherCarto/58", False WinHttpReq.send Cookie = WinHttpReq.getResponseHeader("Set-Cookie") End Sub
++
Qwaz
salut tout les deux
traitez moi de tricheur ou de mystificateur mais ca marche
un seul problème je n'arrive pas avec les apis a enlever la caption de la fenêtre internet avant capture
lancela sub "download_all_image3" et attend
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long Private Declare Sub keybd_event Lib "User32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) Private Declare Function EmptyClipboard Lib "User32" () As Long ' Fonction d'acquisition de l'identifiant de la fenêtre active Private Declare Function GAW Lib "User32" Alias "GetActiveWindow" () As Long Private Declare Function SWL Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 'Fonction d'affichage 'Fonction pour redresser l'affichage de la form sans la caption Private Declare Function DrawMenuBar Lib "User32" (ByVal hwnd As Long) As Long Sub download_all_image3() EmptyClipboard urltest = "http://www.developpez.net/template/images/logo.png" Dim Ie As Object, ret As Long, listeimage As Object, i As Long, IE2 url = "http://inventaire-forestier.ign.fr/cartov2/carto/afficherCarto/58" chemin = ThisWorkbook.Path & "\" Set Ie = CreateObject("internetexplorer.application") Ie.Navigate url With Ie .AddressBar = False .StatusBar = False .MenuBar = False .Toolbar = 0 .Visible = True Do: DoEvents: Loop Until .ReadyState = 4 Do While .Busy Or .ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop code = .Document.getelementbyid("OpenLayers.Layer.WMS_6").outerhtml .Document.write code Application.Wait (Now + TimeValue("0:00:10")) End With 'SWL GAW, -16, &H94080080: SWL GAW, -20, 0: DrawMenuBar GAW 'Copie d'écran de la forme active Application.CutCopyMode = False keybd_event vbKeySnapshot, 1, 0&, 0& DoEvents 'Ajoute une feuille pour coller l'image de la forme 'SWL GAW, -16, &H94CF0080 With Sheets(2) .Activate .Cells(1, 1).Select .Paste End With Ie.Quit End Sub
Bonjour,
Je ne suis pas extrêmement actif devant boucler un projet dans la semaine.
J'espère pouvoir jeter un œil à tête reposée ce soir ;-)
Michel
Bonjour
n'ayant pas de nouvelles y aurait il abandon ??
en attendant je te propose ce fichier dans le quel il y a 2 userforms
le 1 er et un web browser(navigateur)
il y a une liste box avec les départements
tu clique sur un item et la page de la carte s'affiche
ensuite sur cette page le document se reconstruit seulement avec la couverture forestière
une capture de cette image et faite automatiquement et s'affiche dans le 2 Emme userform
tu a 2 bouton (sauver l'image ou retour au navigateur )
l'image est sauver sous le nom("département" & le numéro que tu a choisi dans la liste box
voila pour cette première version by userform
Ps: j'ai oublié de supprimer tout le code dans le module thisworkbook tu peut tout supprimer dans ce module
Oh non ! Pas d'abandon.
J'ai simplement un petit projet à finir qui me prends plus de temps que prévu !
La date butoir approchant, je cravache !
J'espère pourvoir me replonger dans le pb avant la fin de la semaine !
Je déterre le post, étant le créateur cela me semble normal ayant avancé sur le sujet.
Je remercie Patrick pour son aide il y a deux ans, l'option capture d'écran ne me convenait pas, je n'avais vraiment pas le temps de me pencher sur la question d'ailleurs pendant deux ans je n'ai plus programmé (même pas un peu de VBA si si ).
Ayant fini ce que je devais faire, je viens de reprendre le sujet avec la ferme intention de résoudre le problème sans passer par une capture d'écran qui ne me semble permettre une gestion fine de la résolution mètre/pixel.
J'ai donc opté pour l'émulation des touches clavier afin "d'enregistrer sous" la page, ouverte avec IE. Cela me donne une image .png au format 2048 x 2048 (maximum sur le serveur)
L'image est immédiatement collée à la bonne place dans une très très grande image (11x2048 par 11*2048) crée en utilisant WIA.
Un fichier .png est enregistré ainsi que son fichier annexe .pgw > voir http://www.portailsig.org/content/py...es-tfw-jgwpngw pour la syntaxe d'un .pgw
Le tout est donc importable sous QGIS.
Néanmoins je reste sur ma faim car WIA ne me permet pas de créer une image supérieure à la limitation 11 * 2048 = 22528 pixels. Cela ne me permet pas de descendre à 1 mètre/pixel. Je suis actuellement entre 5 et 6 mètres/pixel
Je n'ai pas trouvé la raison de cette limitation, les .png n'étant pas normativement limités cf : http://stackoverflow.com/questions/4...for-png-images et http://www.libpng.org/pub/png/spec/i...ct.html#11IHDR
Moulinant mon image sous Python (le but au final est d'automatiser complètement la chaîne de l'image jusqu'à l'extraction des données en vectoriel) j'ai eu une alerte Python "DecompressionBombWarning: Image size () exceeds limit of 89478485 pixels, could be decompression bomb DOS attack" je me demande donc si WIA limite la taille des images pour les mêmes raison. Sous Python l'alerte peut être désactivée et ne bloque pas le processus.
Qu'en est-il avec VBA et WIA ?
Je poste le code d'ici peu, le temps de le mettre en forme histoire d'être lisible.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager