Fermer une page internet avec vba ( windows XP)

Le
JA
Bonjour,

Dans un script vba, j'ouvre une page internet (php) puis quand le travail
est terminé,
le vba ferme cette page.

Un fichier créé à la fin du php me renseigne sur la fin des travaux, le
vba boucle n fois avec test d'existence de ce fichier puis temporisation
si fichier existe t ou si n fois ( cas du php qui se serait
planté) alors fermer page internet.



Pour fermer cette page, j'avais trouvé sur internet le vba ci après.:

Depuis que je travaille sous XP ( avant, c'etait windows 2000), cette
fermeture de ne fait plus 1 fois sur 3 environ
( je sais, c'est pas scientifique mais, hélas je ne peux pas dire que
celà ne marche plus du tout).

Quelqu'un a -t-il quelque chose de stable sous XP ?


Par avance, merci

Francois


//==
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal HWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Const WM_CLOSE = &H10
Public Const WM_NCDESTROY = &H82 ' ok pour IE

Sub CloseWindow(quoi)

Dim HWnd As Long
HWnd = FindWindow(vbNullString, quoi)
If HWnd > 0 Then
SendMessage HWnd, WM_NCDESTROY, 0, 0
Else
CloseWindow ("pb page à fermer")
End If
End Sub


Sub zz()
Application.WindowState = xlMaximized
'CloseWindow ("Wanadoo - Microsoft Internet Explorer")
Application.DisplayAlerts = False

CloseWindow ("La page - Microsoft Internet Explorer")

Application.DisplayAlerts = True
End Sub

//==
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
j
Le #5047111
c'est vrai que c'est étonnant...
vérifie que le titre de la page est bien "La page - Microsoft Internet
Explorer" dans le cas où ça ne marche pas.
Si oui, je suppose que l'installation de XP a relenti ton PC et qu'une de
tes lignes de code (probablement sendmessage) ne trouve pas le temps de
s'executer
essaie peut être de boucler sur la fermeture :

HWnd = FindWindow(vbNullString, quoi)
If HWnd > 0 Then
while HWnd >0
SendMessage HWnd, WM_NCDESTROY, 0, 0
HWnd = FindWindow(vbNullString, quoi)
wend
else
.....


http://jacxl.free.fr




"JA" 473bef9d$0$25910$
Bonjour,

Dans un script vba, j'ouvre une page internet (php) puis quand le travail
est terminé,
le vba ferme cette page.

Un fichier créé à la fin du php me renseigne sur la fin des travaux,
le

vba boucle n fois avec test d'existence de ce fichier puis temporisation
si fichier existe t ou si n fois ( cas du php qui se serait
planté) alors fermer page internet.



Pour fermer cette page, j'avais trouvé sur internet le vba ci après.:

Depuis que je travaille sous XP ( avant, c'etait windows 2000), cette
fermeture de ne fait plus 1 fois sur 3 environ
( je sais, c'est pas scientifique mais, hélas je ne peux pas dire que
celà ne marche plus du tout).

Quelqu'un a -t-il quelque chose de stable sous XP ?


Par avance, merci

Francois


//============================================================= > Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal HWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam
As

Any) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Const WM_CLOSE = &H10
Public Const WM_NCDESTROY = &H82 ' ok pour IE

Sub CloseWindow(quoi)

Dim HWnd As Long
HWnd = FindWindow(vbNullString, quoi)
If HWnd > 0 Then
SendMessage HWnd, WM_NCDESTROY, 0, 0
Else
CloseWindow ("pb page à fermer")
End If
End Sub


Sub zz()
Application.WindowState = xlMaximized
'CloseWindow ("Wanadoo - Microsoft Internet Explorer")
Application.DisplayAlerts = False

CloseWindow ("La page - Microsoft Internet Explorer")

Application.DisplayAlerts = True
End Sub

//=================================================================== >



j
Le #5047101
tu peux aussi essayer postmessage à la place de sendmessage
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd
As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
PostMessage HWnd, 16, 0, 0

http://jacxl.free.fr



""
c'est vrai que c'est étonnant...
vérifie que le titre de la page est bien "La page - Microsoft Internet
Explorer" dans le cas où ça ne marche pas.
Si oui, je suppose que l'installation de XP a relenti ton PC et qu'une de
tes lignes de code (probablement sendmessage) ne trouve pas le temps de
s'executer
essaie peut être de boucler sur la fermeture :

HWnd = FindWindow(vbNullString, quoi)
If HWnd > 0 Then
while HWnd >0
SendMessage HWnd, WM_NCDESTROY, 0, 0
HWnd = FindWindow(vbNullString, quoi)
wend
else
.....


http://jacxl.free.fr




"JA" 473bef9d$0$25910$
Bonjour,

Dans un script vba, j'ouvre une page internet (php) puis quand le
travail


est terminé,
le vba ferme cette page.

Un fichier créé à la fin du php me renseigne sur la fin des
travaux,


le
vba boucle n fois avec test d'existence de ce fichier puis temporisation
si fichier existe t ou si n fois ( cas du php qui se serait
planté) alors fermer page internet.



Pour fermer cette page, j'avais trouvé sur internet le vba ci après.:

Depuis que je travaille sous XP ( avant, c'etait windows 2000), cette
fermeture de ne fait plus 1 fois sur 3 environ
( je sais, c'est pas scientifique mais, hélas je ne peux pas dire
que


celà ne marche plus du tout).

Quelqu'un a -t-il quelque chose de stable sous XP ?


Par avance, merci

Francois


//============================================================= > > Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal HWnd As Long, ByVal wMsg As Long, ByVal wParam As Long,
lParam


As
Any) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Const WM_CLOSE = &H10
Public Const WM_NCDESTROY = &H82 ' ok pour IE

Sub CloseWindow(quoi)

Dim HWnd As Long
HWnd = FindWindow(vbNullString, quoi)
If HWnd > 0 Then
SendMessage HWnd, WM_NCDESTROY, 0, 0
Else
CloseWindow ("pb page à fermer")
End If
End Sub


Sub zz()
Application.WindowState = xlMaximized
'CloseWindow ("Wanadoo - Microsoft Internet Explorer")
Application.DisplayAlerts = False

CloseWindow ("La page - Microsoft Internet Explorer")

Application.DisplayAlerts = True
End Sub

//=================================================================== > >







Oliv'
Le #5046951
Dans un script vba, j'ouvre une page internet (php) puis quand le
travail est terminé,
le vba ferme cette page.

Un fichier créé à la fin du php me renseigne sur la fin des
travaux, le vba boucle n fois avec test d'existence de ce fichier
puis temporisation si fichier existe t ou si n fois (
cas du php qui se serait
planté) alors fermer page internet.





salut tu fais comment pour l'ouvrir la page ?

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Outlook : http://faq.outlook.free.fr/
les macros Outlook : http://faq.outlook.free.fr/articles.php?cat_id
les archives : http://groups.google.com/group/microsoft.public.fr.outlook
Dernière chance http://www.outlookcode.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



JA
Le #5046611
Oliv'" de news: %23Cgk$
Dans un script vba, j'ouvre une page internet (php) puis quand le
travail est terminé,
le vba ferme cette page.

Un fichier créé à la fin du php me renseigne sur la fin des
travaux, le vba boucle n fois avec test d'existence de ce fichier
puis temporisation si fichier existe t ou si n fois (
cas du php qui se serait
planté) alors fermer page internet.





salut tu fais comment pour l'ouvrir la page ?

--




Je lance
iexplore.exe ma_page

Cordialement
Francois


Et merci pour toutes les réponses




Oliv'
Le #5044501
*JA
Oliv'" message de news: %23Cgk$
Dans un script vba, j'ouvre une page internet (php) puis quand le
travail est terminé,
le vba ferme cette page.

Un fichier créé à la fin du php me renseigne sur la fin des
travaux, le vba boucle n fois avec test d'existence de ce fichier
puis temporisation si fichier existe t ou si n fois (
cas du php qui se serait
planté) alors fermer page internet.





salut tu fais comment pour l'ouvrir la page ?

--




Je lance
iexplore.exe ma_page

Cordialement
Francois


Et merci pour toutes les réponses


Et si tu utilisais le composant ie en automation ?

Dim ie As Object
uerel = http://www.toto.fr
Set ie = CreateObject("internetexplorer.application")
ie.Visible = True
ie.navigate (uerel)
Do While ie.Busy
Application.Wait (Now + 0.2 / 3600 / 24)
Loop
'... ton code
ie.Quit


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Outlook : http://faq.outlook.free.fr/
les macros Outlook : http://faq.outlook.free.fr/articles.php?cat_id
les archives : http://groups.google.com/group/microsoft.public.fr.outlook
Dernière chance http://www.outlookcode.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~





Publicité
Poster une réponse
Anonyme